qq_46299740 2025-04-12 22:42 采纳率: 0%
浏览 9

汇编语言附注3汇编编译器对jmp的相关处理

img

1)如果dispE[-128,1271,则不管汇编指令格式是:
     jmps
     jmp short s
     jmpnearptrs
     jmp far ptr S
 中的哪一种,**都将它转变为jmpshorts所对应的机器码
     jmpshorts所对应的机器码格式为:EBdisp(占两个字节)**

书中说都换被编译优化成jmp short 所对应的机器码,我在实际编译后再debug中并不是如书中所说

img

img

img

同上

我用的ml6.15汇编编译器,可以帮忙解答一下嘛,谢谢

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-04-12 23:03
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    根据书中的描述和您提供的截图,我发现您在实际编译后得到的机器码并不是书中说的将所有jmp指令都转化为jmp short 的机器码。这可能是因为不同汇编编译器的实现有所不同,或者编译器进行了一些优化处理。 在一些情况下,编译器会根据代码的具体情况来选择生成jmp short 或者其他类型的jmp指令,以提高代码的执行效率。这可能会导致实际生成的机器码不同于简单地将所有jmp指令都转换为jmp short 指令的情况。 要解决这个问题,您可以尝试查看编译器的优化选项,或者查阅编译器的文档以了解其具体的优化行为。另外,您也可以尝试使用其他版本的汇编编译器来编译相同的代码,看看是否会得到不同的结果。 如果您需要进一步的帮助,请提供更多的相关信息或代码示例,我会尽力协助您解决问题。
    评论

报告相同问题?

问题事件

  • 修改了问题 4月12日
  • 创建了问题 4月12日