第18章80868088指令集参考.ppt

第18章80868088指令集参考.ppt

ID:60740995

大小:624.50 KB

页数:110页

时间:2020-02-02

第18章80868088指令集参考.ppt_第1页
第18章80868088指令集参考.ppt_第2页
第18章80868088指令集参考.ppt_第3页
第18章80868088指令集参考.ppt_第4页
第18章80868088指令集参考.ppt_第5页
资源描述:

《第18章80868088指令集参考.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第18章8086/8088指令集参考18.1指令码编码规则18.2按字母顺序排列的指令集18.1指令码编码规则18.1.1寄存器的编码使用寄存器的机器指令码,可用3位指明是哪一个寄存器,并有一个用来表示其“宽度”为字节或字的“w”位。此外,只有某些指令可以存取到段寄存器。图18-1列出了所有寄存器的编码。---------------------------------------------通用、基地址及段寄存器编码编码w=0w=1000ALAX001CLCX010DLDX011BLBX100AHSP101CHBPDHSIBHDI编码段寄存器00ES01CS10SS11DS----

2、-----------------------------------------图18-1寄存器编码例如,下面的MOV指令具有一个字节的立即数:MOVAH,001011010000000000∣∣wreg=AH此例中,机器码的第一个字节,指出操作数为一个字节(w=0),并且用到AH寄存器(100)。应注意,不要从此例太早下结论,有些指令的w和reg可能在不同的位置。18.1.2定址形态模式字节若机器指令码内含有定址形态模式字节,则它通常是第二个字节,并且是由下列三部分组成的:(1)mod:占2位,表示定址形态模式,11表示用到了寄存器,而00、01及10表示用到了内存单元。(2)r

3、eg:占3位,表示用到了寄存器。(3)r/m:占3位,表示用到了寄存器或内存,r表示哪一个寄存器,m表示内存单元地址。机器指令码的第一个字节可能含有“d”位,表示第一个字节和第二个字节间的流向。例如,将AX加给BX:ADDBX,AX0000001111011000dwmodregr/m此例中d=1,表示mod(11)及reg(011)描述的是第一个操作数BX;而r/m(000)描述的是第二个操作数。因为w=1,所以宽度是一个字。因此这个指令就是把AX(000)加给BX(011)。机器指令码的第二个字节,通常用来指出内存的定址形态模式。下面将更详细探讨定址形态模式。1.mod位mod的

4、两个位用来区分是寄存器还是内存的定址,其用法如下: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。---------------------------------------------r/mm

5、od=00mod=01mod=10mod=11mod=11w=0w=1000BX+SIBX+SI+dispBX+SI+dispALAX001BX+DIBX+DI+dispBX+DI+dispCLCX010BP+SIBP+SI+dispBP+SI+dispDLDX011BP+DIBP+DI+dispBP+DI+dispBLBX100SISI+dispSI+dispAHSP101DIDI+dispDI+dispCHBP110DirectBP+dispBP+dispDHSI111BXBX+dispBX+dispBHDI------------------------------------

6、---------图18-2r/m位18.1.32字节指令例18.1将AX加给BX。ADDBX,AX0000001111011000dwmodregr/md1指用reg及w描述第一个操作数(BX),用mod、r/m及w描述第二个操作数(AX)w1表示宽度为一个字mod11表示第二个操作数是一个寄存器reg011表示第一个操作数是BX寄存器r/m000表示第二个操作数是AX寄存器例18.2AL乘以BL。MULBL1111011011100011wmodregr/mMUL指令假设AL内放着被乘数。宽度(w=0)是一个字节,mod表示要用到寄存器,而寄存器是BL(011)。reg=100在

7、此没意义。18.1.43字节指令下面的MOV指令产生3字节的指令机器码:MOVmem,AX10100001dddddddddddddddd从累加器(AX或AL)进行传送时,必须明确处理的对象是字节还是字。本例中,w=1表示字,所以用到了16位的AX。若第二个操作数是AL,则w=0。第2、3字节表示的是内存单元的偏移地址。使用累加器的指令通常会产生高效率的机器指令码。18.1.54字节指令例18.3将AL乘以一个内存单元。微处理器假设若为字节乘,则被乘数在A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。