第18篇 80868088指令集参考.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第18章 8086/8088指令集参考 18.1 指令码编码规则 18.2 按字母顺序排列的指令集 18.1 指令码编码规则 18.1.1 寄存器的编码 使用寄存器的机器指令码,可用3位指明是哪一个寄存器,并有一个用来表示其“宽度”为字节或字的“w”位。此外,只有某些指令可以存取到段寄存器。图18-1列出了所有寄存器的编码。 --------------------------------------------- 通用、基地址及段寄存器编码 编码 w=0 w=1 000 AL AX 001 CL CX 010 DL DX 011 BL BX 100 AH SP 101 CH BP DH SI BH DI 编码 段寄存器 00 ES 01 CS 10 SS 11 DS --------------------------------------------- 例如,下面的MOV指令具有一个字节的立即数: MOV AH,00 10110 100 ∣ ∣ w reg=AH 此例中,机器码的第一个字节,指出操作数为一个字节(w=0),并且用到AH寄存器(100)。应注意,不要从此例太早下结论,有些指令的w和reg可能在不同的位置。 18.1.2 定址形态模式字节 若机器指令码内含有定址形态模式字节,则它通常是第二个字节,并且是由下列三部分组成的: (1) mod:占2位,表示定址形态模式,11表示用到了寄存器,而00、01及10表示用到了内存单元。 (2) reg:占3位,表示用到了寄存器。 (3) r/m:占3位,表示用到了寄存器或内存,r表示哪一个寄存器,m表示内存单元地址。 机器指令码的第一个字节可能含有“d”位,表示第一个字节和第二个字节间的流向。 例如,将AX加给BX: ADD BX,AX 11 011 000 dw mod reg r/m 此例中d=1,表示mod(11)及reg(011)描述的是第一个操作数BX;而r/m(000)描述的是第二个操作数。因为w=1,所以宽度是一个字。因此这个指令就是把AX(000)加给BX(011)。机器指令码的第二个字节,通常用来指出内存的定址形态模式。下面将更详细探讨定址形态模式。 1. mod位 mod 的两个位用来区分是寄存器还是内存的定址,其用法如下: 00 以r/m位选用一种定址模式,没有“偏移地址”字节。其中当r/m=110时指定为直接寻址方式 01 以r/m位选用一种定址模式,有一个“偏移地址”字节 10 以r/m位选用一种定址模式,有两个“偏移地址”字节 11 以r/m位选用一个寄存器,“w”位(在操作码字节)决定它用到的是8位或16位的寄存器 2. reg位 reg的3个位配合w位决定实际使用的是8位或16位的寄存器。 3. r/m位 r/m的3个位(寄存器/内存)配合mod决定定址模式,见图18-2。 ----------------------------

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档