有人能用英语解释一下什么是汇编程序中的相对跳转吗?
6qftjkof1#
这是一个操作码,其操作数将使执行跳转到相对于当前地址的地址。操作数的值是一个偏移量。假设相对跳转指令保存在地址0x 0005中,操作数为3。则执行将跳转到地址0x 0008。如果操作数为-3,则执行将跳转到地址0x 0002。
xxb16uws2#
相对跳转与绝对跳转或长跳转的不同之处在于,指令不将整个目标地址编码到执行将继续的位置。相反,它根据体系结构对地址的一部分或当前指令指针的偏移量进行编码。这节省了程序内存空间,在非流水线体系结构中,它的执行速度也会略快。限制是只能跳转较短的距离。对于当前指令相对跳转,该范围通常是用于对地址进行编码的存储大小的带符号偏移量。例如,如果使用8位操作码和8位偏移量,则跳转范围通常是从跳转指令开始的-126到+129。不对称是由于偏移量被添加到指令指针的事实,其在相加时指向下一指令而不是当前指令。
3pmvbmvn3#
跳转到相对于当前地址的地址(此相对跳转指令的地址)。
您需要在操作数中指定“按多少?”部分。
vlurs2pr4#
它不执行next指令,而是将代码游标递增指定给它的值。然后继续执行
4条答案
按热度按时间6qftjkof1#
这是一个操作码,其操作数将使执行跳转到相对于当前地址的地址。操作数的值是一个偏移量。
假设相对跳转指令保存在地址0x 0005中,操作数为3。则执行将跳转到地址0x 0008。如果操作数为-3,则执行将跳转到地址0x 0002。
xxb16uws2#
相对跳转与绝对跳转或长跳转的不同之处在于,指令不将整个目标地址编码到执行将继续的位置。
相反,它根据体系结构对地址的一部分或当前指令指针的偏移量进行编码。这节省了程序内存空间,在非流水线体系结构中,它的执行速度也会略快。限制是只能跳转较短的距离。
对于当前指令相对跳转,该范围通常是用于对地址进行编码的存储大小的带符号偏移量。例如,如果使用8位操作码和8位偏移量,则跳转范围通常是从跳转指令开始的-126到+129。不对称是由于偏移量被添加到指令指针的事实,其在相加时指向下一指令而不是当前指令。
3pmvbmvn3#
跳转到相对于当前地址的地址(此相对跳转指令的地址)。
您需要在操作数中指定“按多少?”部分。
vlurs2pr4#
它不执行next指令,而是将代码游标递增指定给它的值。然后继续执行