Chinaunix

标题: Intel 80x86 cpu 白皮书里的错误 [打印本页]

作者: eggqq007    时间: 2009-07-26 11:10
标题: Intel 80x86 cpu 白皮书里的错误
好久没来这里发帖了,一直没什么时间。。。。
     现在遇到一个问题,需要各位的帮助

     我在阅读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)

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

fuck.JPG (32.25 KB, 下载次数: 43)

fuck.JPG

作者: 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的~~~~~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2