在阅读 HLA faq 时,我对以下内容感到惊讶:
MASM has a nasty habit of changing instructions behind your back. HLA also seems to have this same problem.
然后我在网上搜索,但没有发现任何与此相关的信息。这是真的还是只是一个神话?
最佳答案
MASM 可以改变你的一切。例如,它可以修复你的条件跳转。也就是说,如果你写:
add ax,bx
jnz NotZero
...
NotZero:
如果 NotZero
超出了条件跳转的范围,MASM 可以将您的代码重写为:
add ax,bx
jz Zero
jmp NotZero
Zero:
...
NotZero:
据我所知,有命令行开关可以防止这种情况发生。您还可以明确地说,jnz near NotZero
来防止它。如果您这样做并且目标超出了条件范围,您将收到错误。
我记得 MASM 还做过一些其他类似的事情,但已经过去很长时间了。我不记得那些具体的东西是什么。
关于assembly - MASM 会在背后更改指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7602339/