eggqq007 发表于 2009-07-26 11:10

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)

   我的资料是从网上下载的,其他人的显示的也是这样吗???!!
    求救各位高手了~~~

prolj 发表于 2009-07-26 11:10

去置顶的资源帖找Intel/AMD的官方文档链接,可以找到最新的。

mik 发表于 2009-07-26 13:28

不是bug,而你下载的资料太旧了,以前还没有这些指令

下载新的文档吧。搞不明白为什么还看老的文档

eggqq007 发表于 2009-07-26 22:32

汗。。。久文档?
可是旧文档为什么就有写Group7.。而且里面的Group7 的Opcode也有讲啊。。

哪里下最新的??

mik 发表于 2009-07-26 22:55

你这个文档是什么时候的?

3 楼都跟你说了,新的置顶贴子里有

eggqq007 发表于 2009-07-28 10:05

下了最新的文档,是IA-64 的,和IA-32 有很多不同。。。。但是我只想了解IA-32的~~~~~
页: [1]
查看完整版本: Intel 80x86 cpu 白皮书里的错误