Pointers 跳转指令后的十六进制数如何转换为内存地址?

Pointers 跳转指令后的十六进制数如何转换为内存地址?,pointers,assembly,x86-64,memory-address,Pointers,Assembly,X86 64,Memory Address,我的代码反汇编中包含以下内容: 我看到跳转指令代码E9,但E9之后的数字如何转换为所示的内存地址?指令中的字节是一个偏移量,添加到下一条指令的地址以获得目标地址 7ffbdba881c5+2ab125ff=7ffc0659a7c4 有关跳转编码的附加信息 指令中目标的近跳转始终使用相对于下一条指令地址的有符号偏移量进行编码。在32位或64位模式下,偏移量可以是8位或32位。(在16位模式下,它可以是8位或16位。具有8位偏移量的近跳转也称为短跳转。)间接近跳转的目标地址位于寄存器或内存位置;目

我的代码反汇编中包含以下内容:


我看到跳转指令代码E9,但E9之后的数字如何转换为所示的内存地址?

指令中的字节是一个偏移量,添加到下一条指令的地址以获得目标地址

7ffbdba881c5+2ab125ff=7ffc0659a7c4

有关跳转编码的附加信息

指令中目标的近跳转始终使用相对于下一条指令地址的有符号偏移量进行编码。在32位或64位模式下,偏移量可以是8位或32位。(在16位模式下,它可以是8位或16位。具有8位偏移量的近跳转也称为短跳转。)间接近跳转的目标地址位于寄存器或内存位置;目的地是绝对的(要加载到[ER]IP的值)

远跳转可以在指令或内存位置中有目的地;目标具有CS和[ER]IP值

有关更多详细信息,请参阅x86指令参考,如英特尔SDM,第2卷