cmp word ptr ds:[0], 0AA55h
汇编和objdumped,它看起来像这样:
67 81 3d 00 00 00 00 addr32 cmpw $0xaa55,0x0
55 aa
为什么addr32在这里?我的意思是做我在AT& T(GAS)语法中做的同样的事情:
cmpw $0xAA55, %ds:0
反过来又反过来说:
81 3e 00 00 55 aa cmpw $0xaa55,0x0
文件开头有use16
,除此之外几乎所有内容都可以。
答案 0 :(得分:1)
我想原因是你在JWASM中实际指定了.i386(或更高版本)指令,因为英特尔80386是一个32位CPU,导致32位代码生成的原因。
尝试使用.i286指令编译此代码,以便存档真正的16位代码。