gpt4 book ai didi

assembly - 如何使用相对跳?

转载 作者:行者123 更新时间:2023-12-04 18:12:16 24 4
gpt4 key购买 nike

关于相对跳跃,我有以下问题:

  • 我知道JMP SHORT <displacement>相对于当前PC会跳到<displacement>字节。那是对的吗?
  • 汇编程序会自动生成相对跳转的操作码吗?即当我只写JMP <label>时,如果该标签位于当前PC的128字节内,它会产生相对跳转吗?
  • 如果我确实想使用JMP SHORT <displacement>,计算位移的正确方法是什么?通过检查 list 文件并计算偏移量?
  • 最佳答案

    每个汇编程序(程序)和每个版本的汇编程序都可以选择默认为long或short。因此,我不会寻找一个笼统的声明,即所有汇编程序都默认为一件事。如果好奇,请尝试一下,看看会发生什么。

    使用x86和可变长度指令,仅对位移进行编码非常困难,必须提醒自己不要触碰跳转和目标之间的代码。

    是的,我首先使用标签让汇编器对指令进行编码,然后获得指令集引用手册和带地址的反汇编,并弄清楚如何计算位移。如果汇编程序允许您自己设置位移,这很可能是汇编程序特定的事情,那么您需要知道它可能需要该位移的单位。 x86可能是字节,但是固定字长的指令集可能需要以指令单位而不是字节为单位进行替换。或字节而不是指令,因此我将使用位移然后再次反汇编以查看其计算出了正确的指令。

    关于assembly - 如何使用相对跳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161048/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com