汇编程序:相对跳转

Ton*_*ion 3 x86 assembly

有人能用英语解释汇编程序中的相对跳跃是什么吗?

Ode*_*ded 10

它是一个OP代码,其操作数将导致执行跳转到相对于当前地址的地址.操作数的值是偏移量.

假设相对跳转指令保存在地址0x0005中并且操作数为3.然后执行将跳转到地址0x0008.如果操作数为-3,则执行将跳转到地址0x0002.


Ama*_*9MF 5

相对跳转与绝对跳转或长跳转的不同之处在于,指令不会将整个目标地址编码到将继续执行的位置。

相反,它对地址的一部分或当前指令指针的偏移量进行编码,具体取决于体系结构。这节省了程序内存空间,并且在非流水线架构中,它的执行速度也会稍快一些。限制是你只能跳较短的距离。

对于当前指令相对跳转,范围通常是用于编码地址的存储大小的有符号偏移量。例如,如果使用 8 位操作码和 8 位偏移量,则跳转范围通常为跳转指令的 -126 到 +129。不对称是由于偏移量被添加到指令指针,在添加时指向下一条指令而不是当前指令。