引用这样经过取得标号偏址,减,加三个步骤下来是不是效率上还不如jmp far那样直接取得偏址,将偏址赋给IP呢? 你说的前两个操作,是编译阶段进行的,在程序运行时,只需要进行最后一个操作,然后置 ip ;对段间转移来说,则一般是要通过访问内存来设置 ip 和 cs 两个项,复杂度和性能上要逊 short/near 不少。
这样经过取得标号偏址,减,加三个步骤下来是不是效率上还不如jmp far那样直接取得偏址,将偏址赋给IP呢?
“jmp short/near 标号 ”指令编码短,而且执行速度快。 “jmp far ptr 标号” 指令编码长,速度慢,在保护模式下要进行权限检查。
只有同一段内的才能进行 short/near 类的转移,所以计算偏移只需要知道“标号”处的偏址,只就偏址进行计算,不考虑段;段只在是否适用上做个判定。
21,459
社区成员
41,602
社区内容
加载中
试试用AI创作助手写篇文章吧