Makale numarası: 85509 - Son Gözden Geçirme: 16 Ekim 2003 Perşembe - Gözden geçirme: 2.0

Düzeltme: Etiket hesaplanan ORG 6.0a/6.0b başarısız olabilir

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Ifade bir ORG yönergesi için bir etiket hesaplanıp hesaplanmayacağını Microsoft Macro Assembler (MASM) sürümlerde 6.0a ve 6.0b ORG yönergesini doğru sonuçlar verir değil. Kaynağı ORG yönergesini ayarlamak, ORG yönerge için önce geçerli konumu sayacı (YTL) değerini devre dışı olur.

Çözüm

Aşağıdaki örnek kodu ORG. davranışını düzeltmek için kullanılan bir makro gösterir. Yalnızca ORG için sağlanan ifade, bir etiket kullanılarak hesaplandığı için bu makro kullanılmalıdır. Ifade ORG için sağlanan herhangi bir etiket kullanılarak hesaplandığı değil, ORG yönergesini düzgün çalışmalıdır.

Bu makro, yalnızca MASM sürümleri altında 6.0a ve 6.0b düzgün çalışır.

Durum

Microsoft bu sorunun 6.0a ve 6.0b MASM sürümleri için onaylamıştır. Bu sorun, MS-DOS sürüm 6.1 MASM giderilmiştir.

Daha fazla bilgi

Örnek kod

; Assemble options needed: none

ORGFIX MACRO arg1             ; This macro can be used
   ORG (arg1- ($- @CurSeg))   ; whenever the origin you are
ENDM                          ; trying to set contains a LABEL
                              ; or $ as part of the expression.
.MODEL small
.STACK 4096

.CODE
start LABEL BYTE
   .startup
   .exit 0
finish LABEL BYTE

ORG ((finish- start)+ 10h)    ; This will incorrectly set
tst1 LABEL BYTE               ; the origin.

ORGFIX ((finish- start)+ 10h) ; This will correctly set
tst2 LABEL BYTE               ; the origin.

   DB 'hello'
END
				

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Macro Assembler 6.0a
  • Microsoft Macro Assembler 6.0b
Anahtar Kelimeler: 
kbmt kbfix KB85509 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:85509  (http://support.microsoft.com/kb/85509/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.