作者twwo (Jack)
看板ASM
標題[問題] about eax
時間Wed Dec 12 10:37:30 2007
有個問題想請問一下各位高手,
我想把12345678放進eax暫存器,程式碼如下
.386
.model small
.stack
.data
.code
start:
mov eax,12345678h
mov dl,'d'
mov ah,06h
int 21h
mov ah,4ch
int 21h
end start
可是卻不如預期,反組譯結果如下
2902:0000 B87856 MOV AX,5678h
2902:0003 3412 XOR AL,12h
2902:0005 B264 MOV DL,64h
2902:0007 B406 MOV AH,06h
2902:0009 CD21 INT 21h
2902:000B B44C MOV AH,4Ch
2902:000D CD21 INT 21h
也就是說,組譯出來的執行檔只是把5678放進ax,
而不是我預期的把12345678放進eax,
怎麼會這樣呢?
我的masm是6.11版的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.48.103
1F:推 QCANCER:囧..mov eax,12345678h就搬完了...後面那些作啥? 12/14 14:02
2F:推 wowtiger:你的code似乎是protect mode下的 12/14 23:28
3F:推 wowtiger:加個 prefix 66h 吧 或許有用 12/14 23:34
4F:推 loveflames:flat才是protect mode,而且不可用中斷 12/15 13:59
5F:推 Celios:.386 移到 .model small 下 然後用debug32 反組就有了 03/20 14:21