我读到,当地址中的相对跳转小于 124 时,应使用短跳转,否则应使用长跳转。
x86 上两种类型的跳转在 CPU 执行操作/性能方面有什么区别?
最佳答案
实际上有三种类型的JMP
指令;短、近、远(长)。
短JMP
是您引用的相对JMP
。它被编码为两个字节;实际的 JMP
和相对于当前 IP 的字节数 +/-。
近跳转允许您在当前“段”(使用实模式术语)或 CS 选择器中当前选定的内存区域内跳转。
长或远JMP
还包括一个选择器(或实模式下的段)
您可以自行查找时间。与时间相关的最大差异是由完成 JMP
必须读取的字节数不同引起的。
关于assembly - 长跳和短跳的区别(x86),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315917/