欢迎来到天天文库
浏览记录
ID:41151408
大小:581.51 KB
页数:111页
时间:2019-08-17
《《基本指令系统》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章8086基本指令系统8086全部指令按功能可分成六大类:数据传送指令、算术运算指令、逻辑指令、串操作指令、控制转移指令和处理机控制指令。本章主要介绍以下内容:数据传送指令算术运算指令位操作指令字符串操作指令32位CPU扩展的指令3.1数据传送指令数据传送指令负责将数据、地址或立即数传送到寄存器或存储单元中。在8086/8088CPU指令系统中,数据传送指令共有14条分5组,它们是:(1)通用数据传送指令:MOV、XCHG、XLAT(2)堆栈操作指令:PUSH、POP(3)标志寄存器传送指令:LAHF、SAHF、PUSHF、POPF(4)地址传送指令:LEA、LDS、LE
2、S(5)输入输出指令:IN、OUT其中除标志寄存器传送指令外,数据传送指均不影响任何标志位。3.1数据传送指令3.1.1机器指令格式指令:机器语言的一条语句,它是一组有意义的二进制代码,由操作码字段和操作数字段两个部分组成。操作码字段:表示该指令应进行什么性质的操作。操作数字段:指出指令执行的参与者,也就是各种操作的对象。图3-1指令的一般格式3.1数据传送指令3.1.2通用数据传送指令通用数据传送指令负责CPU内部的寄存器以及内存单元之间的数据传递,是数据传送指令中使用最多的一组指令。该类指令主要包括:MOV、XCHG和XLAT指令。3.1数据传送指令一、基本的传送指令MO
3、V(Move)格式:MOVDEST,SRC;(DEST)←(SRC)其中:(DEST)、(SRC)分别为源和目的操作数。例:MOVAL,BL;BL中的8位数据送ALMOVES,DX;DX中16位数据送ESMOVAX,[BX];MOVCX,[1000H]MOVDX,5040;立即数5040送DX注:对段寄存器赋值时,只能通过寄存器赋值,不能用立即数直接赋值。允许的操作数组合:SRC可为:立即数、通用寄存器、存储器、段寄存器。DEST可为:通用寄存器、存储器、段寄存器DEST和SRC可以有9种组合,如下图所示:(1)通用寄存器到通用寄存器如:MOVAX,BX;(2)立即数到通用
4、寄存器如:MOVAX,03H;(3)立即数到存储单元如:MOVBYTEPTR[2000H],12H(4)存储单元到通用寄存器如:MOVAX,[2000H];(5)通用寄存器到存储单元如:MOV[2000H],AX;图3-2MOV指令传送示意图(6)通用寄存器到除CS外的段寄存器如:MOVDS,AX;。(7)段寄存器到通用寄存器如:MOVAX,DS;(8)存储器到除CS外的段寄存器如:MOVES,[2000H];(9)段寄存器到存储器如:MOV[2000H],DS;二、交换指令XCHG(Exchange)格式:XCHGDEST,SRC;(DEST)<-->(S
5、RC)功能:将两个操作数DEST与SRC的内容互换.允许的操作数组合:交换可以在通用寄存器之间或通用寄存器与存储器之间进行,但不能在两个存储单元之间直接进行,DEST与SRC可以为字或者是字节。例:XCHGAL,BL;AL和BL的内容互换XCHGBX,CX;BX和CX的内容互换。XCHG[1200H],CX;CX中的内容和1200H,;1201H两单元的内容互换三、查表换码指令XLAT(Translate)格式:XLAT;AL←(BX+AL)表:≤256字节的数据区。BXBX指向表的首地址AL指向数据表某项地址(0~255)。执行XLAT时,将BX+AL指向字节单元中的值送A
6、L。该指令操作数全为隐含,换码表首地址在BX中,欲读取数据表单元偏移量在AL中。例:MOVBX,1000HMOVAL,04HXLAT;AL←(BX+AL)=(1004H)=50H换码过程:3.1.3堆栈操作指令堆栈及堆栈操作指令(1).堆栈的概念堆栈是内存的一个逻辑段,当这个段被指定为堆栈后,可用堆栈操作指令对它进行特殊规则的访问,这个规则就是:不论入栈还是出栈,都只能从栈顶处进行,堆栈内数据遵循先进后出,后进先出的原则。(2).堆栈的设置8086/8088中专门有2个寄存器用于堆栈操作:堆栈段寄存器SS和堆栈指针寄存器SP。SS用来存放堆栈段的段基址,SP用于指示堆栈的
7、顶部单元的段内偏移量,开始时堆栈内没有数据,栈顶就是栈底,故开始时要将栈底单元的偏移量赋给它,以指明栈低位置。3.1数据传送指令二、堆栈操作指令堆栈按“后进先出”原则设计的数据区。堆栈段地址 由SS段寄存器提供堆栈区操作数据地址 由堆栈指针寄存器SP提供。SP的初值是指向的地址为栈底,进行堆栈数据操作后SP指向栈顶地址。必须为字操作数1.入栈指令PUSH(Pushontothestack)格式:PUSHSRC;SP←SP-2,(SP+1,SP)←(SRC)8088的入栈过程:(1)SP←SP-1,调整堆
此文档下载收益归作者所有