长跳跃和短跳的区别(x86)

时间:2015-03-28 10:11:35

标签: assembly x86 cpu instructions machine-instruction

我已经读过,当地址中的相对跳跃小于124时,将使用短跳跃,否则应该使用长跳跃。

在x86上的两种类型的跳转之间,在CPU /性能中执行操作的区别是什么?

1 个答案:

答案 0 :(得分:10)

实际上有三种JMP指令;短,近,远(长)。

JMP是您所指的相对JMP。它被编码为两个字节;相对于当前IP的实际JMP和字节数+/-。

近距离跳跃允许您跳过当前"段" (使用实模式术语)或CS选择器中当前选定的存储区域内。

long或JMP还包括选择器(或实模式中的段)

您可以自己查看时间。与时间相关的最大差异是由于必须读取以完成JMP的不同字节数所致。