assembly 汇编程序:相对跳转

cgvd09ve  于 2022-11-13  发布在  其他
关注(0)|答案(4)|浏览(252)

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

6qftjkof

6qftjkof1#

这是一个操作码,其操作数将使执行跳转到相对于当前地址的地址。操作数的值是一个偏移量
假设相对跳转指令保存在地址0x 0005中,操作数为3。则执行将跳转到地址0x 0008。如果操作数为-3,则执行将跳转到地址0x 0002。

xxb16uws

xxb16uws2#

相对跳转与绝对跳转或长跳转的不同之处在于,指令不将整个目标地址编码到执行将继续的位置。
相反,它根据体系结构对地址的一部分或当前指令指针的偏移量进行编码。这节省了程序内存空间,在非流水线体系结构中,它的执行速度也会略快。限制是只能跳转较短的距离。
对于当前指令相对跳转,该范围通常是用于对地址进行编码的存储大小的带符号偏移量。例如,如果使用8位操作码和8位偏移量,则跳转范围通常是从跳转指令开始的-126到+129。不对称是由于偏移量被添加到指令指针的事实,其在相加时指向下一指令而不是当前指令。

3pmvbmvn

3pmvbmvn3#

跳转到相对于当前地址的地址(此相对跳转指令的地址)。

您需要在操作数中指定“按多少?”部分。

vlurs2pr

vlurs2pr4#

它不执行next指令,而是将代码游标递增指定给它的值。然后继续执行

相关问题