2017-11-28 97 views
6

bir sembole yeni bir değer atama değil:Atama yönergesi Neden EMU8086 içinde Atama Yönergesi (=</strong><strong>) kullanılarak bir sembol <code>X</code> için yeni değer aşağıdaki kodu atamaz EMU8086

.model small 
.data 

     X = 8 

.code 
.startup 

     mov ax, @data 
     mov ds, ax 

     mov bx, X 

     X = 6  

     mov bx, X 

     mov ah, 02h 
     mov dx, bx 
     add dx, 48 
     int 21h  ; It should display 6 but instead it display 8. 

     mov ah, 04ch 
     int 21h 

end 
+2

EMU8086'da bir hata veya eksiklik görünüyor. MASM ve TASM ile, '=' ile tanımlanan sabit bir değeri yeniden tanımlamanıza izin verilir. EMU8086'nın orijinal değeri aldığını ve sonraki değişiklikleri göz ardı ettiğini görüyor –

+0

Evet, bunu GUI TURBO ASSEMBLER ** 'de kontrol ediyorum. Rapor etmeli miyim? – Ahtisham

+0

EMU8086'nin hala devam edip etmediğini bilmiyorum. Hata bildirmek için bir e-posta adresi veya başka bir mekanizma bulamadım. –

cevap

4

EMU8086 bir hata var /eksiklik. = yönergesi nasıl çalıştığını nasıl yorumluyorsunuz correct geçerli: = yönergesi ile tanımlanmış

Tamsayılar kaynak kodunda başka değerle yeniden tanımlandı, ama EŞİT yapamam olanlar tanımlanabilir. Eğer MASM veya TASM ile bu derleme, bunun yerine 8 ait 6 görüntüleyerek beklediğiniz gibi

kod çalışması gerekir.

EMU8086 yıllardan beri güncellenmemiştir ve şu anda korunmakta olduğuna inanmıyorum. Ürünle ilişkili bir hata raporlama sistemi veya hatayla ilgili e-posta adresi görünmüyor.

EMU8086 kullanmamak için bir neden arıyorsanız, bakım eksikliği; bilinen hatalar; ve sınırlı BIOS ve DOS Int 21h uyumluluğu, işi yapmak için başka araçlar bulmak için neden olmalıdır. Bulunduğunuz işletim sistemine özgü 32 bit ve 64 bit kod yazmak daha ideal bir yaklaşımdır. EMU8086 iyi bir eğitim aracıdır, ancak ciddi bir iş için kullanılmamalıdır.

+1

Peki ben sadece montaj 8086 öğrenme planya değilim o zaman ciddi kod yazmak ama ben o zaman ben de aynı TASM tercih ederim. btw teşekkür için teşekkürler cevabını – Ahtisham

+1

btw için ben değil EQU '&' = 'direktifleri arasındaki fark yerine ben net değil kitap adı ** 8088 ve 8086 Mikroişlemciler ** – Ahtisham