资源描述:
《ch07-指令系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指令系统一、IBMPC(8086/8088)指令系统二、数据传送指令三、算术运算指令四、逻辑运算指令五、串操作指令六、控制转移指令七、处理机控制指令HYPer一、IBMPC(8086/8088)指令系统8086/8088指令系统可分为六组:数据传送指令算术指令逻辑指令串处理指令控制转移指令处理机控制指令HYPer分类名称格式功能OSZAPC通用数据传送指令基本传送指令MOVd,s字、字节传送不影响进栈指令PUSHs字压入堆栈不影响出栈指令POPd字弹出堆栈不影响交换指令XCHGd,sXCHGreg字、字节交换不影响换码指令XLATAL中数据转换不影响地址传送
2、指令有效地址送寄存器指令LEAreg,s有效地址寄存器不影响指针送寄存器及DS指令LDSreg,s地址指针寄存器,DS不影响指针送寄存器及ES指令LESreg,s地址指针寄存器,ES不影响I/O传送指令输入指令INAL,port外设数据AL不影响输出指令OUTport,ALAL外设数据不影响标志寄存器传送指令读取标志指令LAHFFlag低字节AH不影响设置标志指令SAHFAHFlag低字节ZAPC标志寄存器入栈指令PUSHF把Flag内容压入堆栈不影响标志寄存器出栈指令POPF把Flag内容弹出堆栈OSZAPCHYPer二、数据传送指令(1)基
3、本传送指令MOVd,s;ds源操作数s——寄存器、存储器、立即数目的操作数d——寄存器、存储器执行的操作:dsHYPerRcMDataRs(cs不可变)1.通用数据传送指令MoveCopyfromdtosR-R:CPU内部寄存器之间的数据传送MOVAL,BLMOVDX,DIMOVSI,BPMOVDS,BXMOVAX,DXRData:立即数传送到CPU内部通用寄存器组(AX,BX,CX,DX,BP,SP,DI,SI)MOVCL,4MOVDX,03FFHMOVDI,04BFH•R-M:CPU内部寄存器(除CS,IP外)与存储器(所有寻址方式)之间的数据传送
4、MOVBX,BUFFERMOV[DI],CXMOVAL,[2000]MOVSI,BLOCK[BP]MOVAX,[SI]MOVDS,DAT[SI+BX]•M<-Data:立即数给存储单元赋值MOVWORDPTR[2000],10MOVBYTEPTR[BX+DI],30实例:注意事项:1.RsX-Data:立即数不能直接送段寄存器,MOVDS,3000H2.DataX-..:目标操作数不允许用立即数方式,MOV2000H,AL3.M-X-M:不允许在两个存储单元间传送数据,MOV[2000H],[3000H]4.Rs-X-Rs:不允许在两个段寄存器之间传送数
5、据,MOVDS,ES5.MOV指令不影响标志位Flags。6.CS不可变:MOVCS,AXAREA1AREA265F3020024E00500MovAREA2,AREA1MovAL,AREA1MovAREA2,AL例1:把地址为AREA1(段内偏移量)的存储单元的内容,传送至同一段内的地址为AREA2的存储单元中。例2:若要传送的不是一个字节,而是一个数据块,(例如内有100个字节),如何实现?AREA1AREA265F302……050010000000SS:0000SS:SP堆栈段(2)堆栈操作指令PUSHs;stacksPOPd;dstackd,s=
6、Rc16;Rs;M16Rc16M16DataRs(cs不可变)堆栈——按照先进后出的原则组织的一段内存区域。8086中规定堆栈设置在堆栈段(SS段)内,堆栈指针SP的初值决定了堆栈的大小。SP始终指向堆栈的顶部,即始终指向最后推入堆栈的信息所在的单元。PUSHAX指令分两步执行:1.先SP-1SP,将AH内容送至SP所指单元;2.再SP-1SP,将AL内容送至SP所指单元;例:MOVAX,1234HPUSHAXPOPAX指令分两步执行:1.先将SP所指单元内容送至AL,然后SP+1SP;2.再SP所指单元内容送至AH,然后SP+1SP例:MOVAX,
7、5678HPOPAX在寄存器间或寄存器与存储器间交换信息(不允许使用段寄存器)。源操作数:寄存器、存储器目的操作数:寄存器、存储器执行的操作:ds例:XCHGBX,[BP+SI](BX)=6F30H(BP)=0200H(SI)=0046H(SS)=2F00H(2F246H)=1234H(3)交换指令XCHGd,s;dsXCHGs;AXsRcMd,s=Exchangevaluesoftwooperands功能:将AL指向的换码表中的一个字节的内容送到AL中。操作数:隐含的寄存器BX,AL操作:AL[BX+AL]MOVAL,01HMOVBX,2000
8、HXLAT(4)换码指令XLAT;AL[BX+AL