CPU如何判断指令长度.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CPU如何判断指令长度

CPU如何判断指令长度那就要看CPU怎么识别机器码了, 比如 MOV AL,00 的机器码是 1011 0000 0000 0000b B000h MOV 的机器码是 1011 AL 的机器码是 0000 CPU读取一条指令,假如第一个字节是B0,那么 就是MOV AL,后面紧跟着的一个字节就是要传进去的立即数(CPU判定这条指令长度2个字节) 再者 MOV AL,[0000] 的机器码是 1010 0000 后面16位0 如果这个字节是A0,那么就是寄存器间接寻址的MOV AL,后面紧跟着的16位就是地址偏移量 (CPU就判定这条指令长度3个字节) 8086/8088 指令与机器码转换对照表 \L H\ 0 1 2 3 4 5 6 7 L/ /H 0 ADD B.F.R/M ADD W.F.R/M ADD B.T.R/M ADD W.T.R/M ADD AL, ADD AX, PUSH ES POP ES 0 1 ADC B.F.R/M ADC W.F.R/M ADC B.T.R/M ADC W.T.R/M ADC AL, ADC AX, PUSH SS POP SS 1 2 AND B.F.R/M AND W.F.R/M AND B.T.R/M AND W.T.R/M AND AL, AND AX, ES: DAA 2 3 XOR B.F.R/M XOR W.F.R/M XOR B.T.R/M XOR W.T.R/M XOR AL, XOR AX, SS: AAA 3 4 INC AX INC CX INC DX INC BX INC SP INC BP INC SI INC DI 4 5 PUSH AX PUSH CX PUSH DX PUSH BX PUSH SP PUSH BP PUSH SI PUSH DI 5 6 PUSHA POPA BOUND ? FS: GS: 操作尺 寸前缀 寻址尺 寸前缀 6 7 JO * JNO * JB * JNB * JE * JNE * JNA * JA * 7 8 IMMED I.B.R/M IMMED I.W.R/M IMMED I.B.R/M IMMED I.E.R/M TEST B.R/M TEST W.R/M XCHG B.R/M XCHG W.R/M 8 9 NOP XCHG CX,AX XCHG DX,AX XCHG BX,AX XCHG SP,AX XCHG BP,AX XCHG SI,AX XCHG DI,AX 9 A MOV AL,[D16] MOV AX,[D16] MOV [D16],AL MOV [D16],AX MOVSB MOVSW CMPSB CMPSW A B MOV AL, MOV CL, MOV DL, MOV BL, MOV AH, MOV CH, MOV DH, MOV BH, B C SHIFT B.R/M SHIFT W.R/M RET RET LES R/M LDS R/M MOV I.B.R/M MOV I.W.R/M C D SHIFT B.R/M SHIFT W.R/M SHIFT B.V.R/M SHIFT W.V.R/M AAM D4 0A AAD D5 0A ? XLAT D E LOOPNE * LOOPE * LOOP * JCXZ * IN AL, IN AX, OUT ,AL OUT ,AX E F LOCK ? REPNZ REPZ HLT CMC GRP1 I.B.R/M GRP1 I.W.R/M F H/ /L 0 1 2 3 4 5 6 7 \H L\ 注:*为IP或SP加8位偏移量,**为16位偏移量 B字节,W字,F源,T目,I立即数,E经符号扩展,V移CL位,SR段寄存器 F、T指REG字段所确定的操作数是源还是目。 \L H\ 8 9 A B C D E F L/ /H 0 OR B.F.R/M OR W.F.R/M OR B.T.R/M OR W.T.R/M OR AL, OR AX, PUSH CS ? 0 1 SBB B.F.R/M SBB W.F.R/M SBB B.T.R/M SBB W.T.R/M SBB AL, SBB AX, PUSH DS POP DS 1 2 SUB B.F.R/M SUB W.F.R/M SUB B.T.R/M SUB W.T.R/M SUB AL, SUB AX, CS: DAS 2 3 CMP B.F.R/M CMP W.F.R/M CMP B.T.R/M CMP W.T.R/M CMP AL, CMP AX, DS: AAS 3 4 DEC AX DEC CX DEC DX DEC BX DEC S

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档