奇怪JWASM(MASM兼容)行为
cmp word ptr ds:[0], 0AA55h
组装和objdumped,它看起来像这样:奇怪JWASM(MASM兼容)行为
67 81 3d 00 00 00 00 addr32 cmpw $0xaa55,0x0 55 aa
为什么addr32在这里?我的意思是做我做的同样的事情& T(GAS)语法:
cmpw $0xAA55, %ds:0
这,反过来,objumped:
81 3e 00 00 55 aa cmpw $0xaa55,0x0
有一个在文件的开头use16
,几乎一切似乎都没问题,除此之外。
回答:
我想是因为实际上你已经在JWASM中指定了.i386(或更高)的指令,结果生成了32位代码,因为Intel 80386是32位的CPU。
尝试使用.i286指令编译此代码以存档实际的16位代码。
以上是 奇怪JWASM(MASM兼容)行为 的全部内容, 来源链接: utcz.com/qa/265416.html