【问题标题】:How is this instruction calculating jump destination?该指令如何计算跳转目标?
【发布时间】:2014-02-02 06:40:45
【问题描述】:

我想了解这条线在做什么

   0x0000000000400f7e <+59>:    jmpq   *0x401be0(,%rax,8)

让我们假设 $rax = 2。所以我们有 *0x401be0+(8*2)。

*0x401be0 指向 4198277。所以我们有 4198277+16 = 4198293 或 0x400F95。

所以我希望代码跳转到 0x400F95 处的指令。但它会跳转到 0x400fc9。实际发生了什么?

【问题讨论】:

    标签: assembly x86 disassembly


    【解决方案1】:

    代码从地址0x401be0+8*rax处的数据中读取一个64位的值(代码地址)并跳转到读取的地址。

    【讨论】:

      猜你喜欢
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2013-06-22
      • 2020-06-30
      • 1970-01-01
      相关资源
      最近更新 更多