Intel 80x86 cpu 白皮书里的错误
好久没来这里发帖了,一直没什么时间。。。。现在遇到一个问题,需要各位的帮助
我在阅读Intel文档 APPENDIX A OPCODE MAP 发现一个问题。。。
就是怎么都找不到里面的Group7 !!其余的Group1~Group6,Group8~GroupA都可以找到。。(Group:Opcode extensions forone-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的官方文档链接,可以找到最新的。 不是bug,而你下载的资料太旧了,以前还没有这些指令
下载新的文档吧。搞不明白为什么还看老的文档 汗。。。久文档?
可是旧文档为什么就有写Group7.。而且里面的Group7 的Opcode也有讲啊。。
哪里下最新的?? 你这个文档是什么时候的?
3 楼都跟你说了,新的置顶贴子里有 下了最新的文档,是IA-64 的,和IA-32 有很多不同。。。。但是我只想了解IA-32的~~~~~
页:
[1]