看板 ASM 關於我們 聯絡資訊
有個問題想請問一下各位高手, 我想把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
QCANCER:囧..mov eax,12345678h就搬完了...後面那些作啥? 12/14 14:02
wowtiger:你的code似乎是protect mode下的 12/14 23:28
wowtiger:加個 prefix 66h 吧 或許有用 12/14 23:34
loveflames:flat才是protect mode,而且不可用中斷 12/15 13:59
Celios:.386 移到 .model small 下 然後用debug32 反組就有了 03/20 14:21