Assembly 汇编程序:相对跳转
有人能用英语解释一下汇编程序中的相对跳转是什么吗?这是一种操作码,其操作数将导致执行跳转到相对于当前地址的地址。操作数的值是偏移量Assembly 汇编程序:相对跳转,assembly,x86,Assembly,X86,有人能用英语解释一下汇编程序中的相对跳转是什么吗?这是一种操作码,其操作数将导致执行跳转到相对于当前地址的地址。操作数的值是偏移量 假设相对跳转指令保存在地址0x0005中,操作数为3。然后执行将跳转到地址0x0008。如果操作数为-3,执行将跳转到地址0x0002。相对跳转与绝对跳转或长跳转不同,因为指令不会将整个目标地址编码到执行将继续的位置 相反,它根据体系结构对地址的一部分或与当前指令指针的偏移量进行编码。这节省了程序内存空间,在非流水线体系结构中,它的执行速度也会稍快一些。限制是你只能
假设相对跳转指令保存在地址0x0005中,操作数为3。然后执行将跳转到地址0x0008。如果操作数为-3,执行将跳转到地址0x0002。相对跳转与绝对跳转或长跳转不同,因为指令不会将整个目标地址编码到执行将继续的位置 相反,它根据体系结构对地址的一部分或与当前指令指针的偏移量进行编码。这节省了程序内存空间,在非流水线体系结构中,它的执行速度也会稍快一些。限制是你只能跳更短的距离
对于当前指令相对跳转,范围通常是用于编码地址的存储器大小的有符号偏移量。例如,如果使用8位操作码和8位偏移量,则跳转指令的跳转范围通常为-126到+129。这种不对称性是由于将偏移量添加到指令指针上,在添加时,指令指针指向下一条指令而不是当前指令。相对于当前地址跳转到地址。(此相对跳转指令的地址) 您需要在操作数中指定“按多少”部分