问题描述
|
我偶然发现了英特尔软件开发人员手册中的一项声明:
\“对于LGDT,LIDT,LLDT,LTR,SGDT,SIDT,SLDT,STR,退出资格接收指令的位移字段的值,如有必要,将其符号扩展为64位(在不支持的处理器上为32位Intel 64体系结构。如果指令没有位移(例如,具有寄存器操作数),则将零存储到退出条件中。
现在,如果我有LIDT 0xf290指令,那么“ 0xf290”是位移吗?我认为答案是肯定的。
那么,我的困惑是什么全部构成位移?我印象深刻的是,位移是根据当前eip值计算得出的。
例如。 jmp xxx(在段内跳转中,这将是一个位移。但是对于段间跳转,应为绝对地址。)如果是这种情况,那么为什么LIDT加载相对地址?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)