- 论坛徽章:
- 0
|
10可用积分
好久没来这里发帖了,一直没什么时间。。。。
现在遇到一个问题,需要各位的帮助
我在阅读Intel文档 APPENDIX A OPCODE MAP 发现一个问题。。。
就是怎么都找不到里面的Group7 !! 其余的Group1~Group6,Group8~GroupA都可以找到。。(Group:Opcode extensions for one-and two-byte opcodes, 就是说Group里面都是那些需要用mod-reg-rm 中的中间三位来当做opcode的补充,这样才能区分一些特殊的opcode)
在Opcode Map 里的TableA-3确实是存在Group7的
分别为SGDT, SIDT, LGDT, LIDT, SMSW,空,LMSW, INVLPG
基于这个信息,我查找了APPENDIX B INSTRUCTION FORMATS AND ENCODINGS
发现SGDT, SIDT, LGDT, LIDT, SMSW,LMSW, INVLPG 的Opcode 都为 0000 1111:0000 0001 (为two-opcode),其后面得mod-reg-rm 中的reg再做opcode的补充,来区分不同指令。
由此opcode,我再返回去找了一下 OPCODE MAP 里two byte opcode 里的第一行,第二列。丫的,那个地方竟然是空的,而Intel又很恶心的再页面最后说,空的表明没有用到!!! (原文:All blanks in the opcode map are reserved and should not be used. Do not depend on the operation of these undefined opcodes)
我的资料是从网上下载的,其他人的显示的也是这样吗???!!
求救各位高手了~~~ |
最佳答案
查看完整内容
去置顶的资源帖找Intel/AMD的官方文档链接,可以找到最新的。
|