2014-12-04 27 views
5

mio file sorgente MASM è la seguente:mio programma .exe non è quello che mi aspettavo

qq.asm

assume cs:codesegment 
codesegment segment 
mov ax, 0ffffh 
mov ds, ax 
mov al, 00ffh 
mov bx, 0006h 
mov [bx], al 
mov al, [0006] 
mov ah, 0 
mov dx, 0 
mov cx, 3 
s: add dx, ax 
loop s 
mov ax, 4c00h 
int 21h 
codesegment ends 
end 

Io uso il programma MASM genera un file .exe, che di nome qq.exe.When io uso il debug QQ.exe -u, gli istruttori sono i seguenti nella foto: picture

ho confuso che "mov al, [0006]" istruttore nel mio qq.asm si rivolse a "mov aL, 06" in QQ.exe. Qualsiasi aiuto sarebbe gradito.

+1

Grazie @NobleUplift. –

risposta

3

[0006] è stato interpretato come una costante immediata. Puoi evitarlo con un override del segmento:

mov al, ds:[0006] 
+0

Grazie mille @ rkhb. –

+0

Grazie ancora, ho fatto come hai suggerito e tutto è OK @ rkhb. –