[問題] about eax

看板ASM (組合語言)作者 (Jack)時間17年前 (2007/12/12 10:37), 編輯推噓5(500)
留言5則, 4人參與, 最新討論串1/3 (看更多)
有個問題想請問一下各位高手, 我想把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

12/14 14:02, , 1F
囧..mov eax,12345678h就搬完了...後面那些作啥?
12/14 14:02, 1F

12/14 23:28, , 2F
你的code似乎是protect mode下的
12/14 23:28, 2F

12/14 23:34, , 3F
加個 prefix 66h 吧 或許有用
12/14 23:34, 3F

12/15 13:59, , 4F
flat才是protect mode,而且不可用中斷
12/15 13:59, 4F

03/20 14:21, , 5F
.386 移到 .model small 下 然後用debug32 反組就有了
03/20 14:21, 5F
文章代碼(AID): #17NqbhQ- (ASM)
討論串 (同標題文章)
以下文章回應了本文
3
5
完整討論串 (本文為第 1 之 3 篇):
5
5
17年前, 12/12
3
5
3
7
文章代碼(AID): #17NqbhQ- (ASM)