这个英特尔jmpq指令有什么作用?

Rou*_*per 14 assembly gdb x86-64

如何0x600860在以下英特尔指令中计算地址?0x4003b8+ 0x2004a2= 60085a,所以我看不出计算是如何进行的.

0x4003b8 <puts@plt>: jmpq *0x2004a2(%rip) # 0x600860 <puts@got.plt>

Emp*_*ian 22

在Intel上,JMP,CALL等与下一条指令的程序计数器有关.

您案件中的下一条指令是0x4003be,和0x4003be + 0x2004a2 == 0x600860

  • 对于那些想知道jmpq中的"q"的人来说,它只是表示AT&T/GAS汇编语法中操作数的大小(q代表quad). (13认同)