《处理机与习题.ppt》由会员分享,可在线阅读,更多相关《处理机与习题.ppt(18页珍藏版)》请在三一办公上搜索。
1、,1,2,8086CPU的指令格式,8086CPU的指令系统,3,8086CPU的寻址方式,第三章 指令系统,指令系统,指令分类,数据传送指令 算术运算指令 逻辑运算与移位指令 串操作指令 控制转移指令 处理机控制指令,处理器控制指令用于控制处理器的某些功能,标志位操作指令(7条),同步控制指令(3条),3、交权指令 ESC 格式:ESC 外部操作码,源操作数 说明:要求协处理器完成某种任务。ESC是在最大模式下使用的一条指令,主要用在CPU与外部处理器(如协处理器8087)配合工作的情形。CPU执行该指令时,可使外部协处理器获得一个操作码和一个操作数,并使用8086的寻址方式。,暂停及空操作
2、指令(2条),4、暂停指令 HLT 格式:HLT 功能:使CPU进入暂停状态 说明:只有当下面三种情况之一发生时,CPU才退出暂停状态:CPU的复位输入端RESET线上有复位信号;非屏蔽中断NMI线上出现请求信号;可屏蔽中断INTR线上出现请求信号且中断允许标志IF1。该指令是为中断等待而设。当响应中断时,待处理完中断后,由IRET指令返回到HLT的下一条指令。,5、空操作指令 NOP 格式:NOP 功能:不执行任何操作,只是占用了CPU用来获取该指令的4个时钟周期时间 说明:该指令常用来产生软件延时、填充调试程序时删除的指令字节单元等。,【例】设段寄存器DS1000H,SS2000H,ES3
3、000H,通用寄存器BX4000H,BP5000H,SI6000H,DI7000H。在下列各指令中指出存储器操作数的寻址方式,求出有效地址EA、物理地址PA。(1)MOVCX,2300H(2)MOVBYTE PTRBX,8FH(3)MOVDH,BP3000H(4)MOVES:SI1210H,AX(5)MOVBXDI50H,AL(6)INCWORD PTRBXSI,;EA2300H,PA12300H,;EA4000H,PA14000H,;EA8000H,PA28000H,;EA7210H,PA37210H,;EAB050H,PA1B050H,;EAA000H,PA1A000H,【例】指出下列指令
4、中源操作数的寻址方式。(1)MOVBL,0F9H(2)ADDBX,SI(3)SUBCL,4000H(4)CMPDX,SI(5)ANDAL,BX1(6)ORBP,DI2100H(7)XORAX,BPSI(8)MOVCX,300,;立即数,;寄存器,;直接,;寄存器间接,;基址,;变址,;立即数,;基址加变址,【例】下列指令都是非法的,指出各指令错在哪里?,(12)PUSHAL(13)LEAAX,BX(14)LDSBL,5100H(15)INAH,DX(16)OUT288H,AL(17)ADD2400H,1234H(18)XOR2500H,BX10H(19)INCSI(20)MUL10(21)ID
5、IVBPDI1300H(22)SALAL,2,(1)MOVSI,AH(2)MOV70H,BL(3)MOVCX,F123H(4)MOVBX,6AH(5)MOVES,5000H(6)MOVDI,3000H(7)MOVDS,SS(8)MOVCS,AX(9)MOVAL,CX(10)MOVBXBP,DX(11)MOVBH,SIDI2,【例】设SP2000H,AX3000H,BX5000H,执行以下3条指令后,问SP?AX?BX?PUSHAXPUSHBXPOPAX,【例】下列程序执行完后,AX?BX?CX?MOVAX,1122HMOVBX,3344HPUSHAXPOPCXXCHGBX,CXLEACX,BX
6、,;SP1FFEH,;SP1FFCH,;SP1FFEH,AX5000H,BX5000H,;AX1122H,;BX3344H,;CXAX1122H,;BX1122H,CX3344H,;CX1122H,AX1122H,BX1122H,CX1122H,【例】CPU分别执行下列各段程序后,写出各个执行结果的状态标志位OF、SF、ZF、AF、PF、CF的值。(1)MOVAL,7AHADDAL,53H(2)MOVBL,0AFHADDBL,0EAH(3)MOVCL,0FFHADDCL,01H(4)MOVDL,49HSUBDL,0CAH,;OF=1,SF=1,ZF=0,AF=0,PF=0,CF=0,;OF=0
7、,SF=1,ZF=0,AF=1,PF=1,CF=1,;OF=0,SF=0,ZF=1,AF=1,PF=1,CF=1,;OF=0,SF=0,ZF=0,AF=1,PF=0,CF=1,【例】有如下程序段MOVAL,45HADDAL,71HDAAMOVBL,ALADCAL,19HDAAMOVBH,AL问,执行完此段程序后,BX=,标志位PF=,CF=。,BX=3616H,PF=1,CF=0,;ALB6H;AL16H,CF1;BL16H;AL30H,CF0,AF1;AL36H,PF1;BH36H,【例】分别只使用一条指令实现下述各功能。(1)使AL的低4位清0,高4位不变。(2)使DI的高10位清0,低6
8、位不变。(3)使BL的低4位置1,高4位不变。(4)使SI的高2位置1,低14位不变。(5)使CL中的D2、D3、D4、D5、D6位取反,D0、D1、D7位不变。(6)使BP的高4位取反,低12位不变。,(1)AND AL,0F0H(2)AND DI,003FH(3)OR BL,0FH(4)OR SI,0C000H(5)XOR CL,7CH(6)XOR BP,0F000H,【例】设AX1234H,CX9602H,下列指令执行完后,AL?ANDAL,AHSHLAL,CLORAL,CHSARAL,CLXORAL,CLRCLAL,1,;AL10H;AL40H;ALD6H;ALF5H,CF1;ALF7
9、H,CF0;ALEEH,CF1,【例】有如下程序段MOVSP,3008HMOVAX,DIRCT:CALLPSUB1MOVDI,AXPSUB1:PUSHAXPUSHBXRET问,当执行完PUSH BX 指令后,SP=;当执行完RET指令后,IP=。,;IP入栈,SP3006H,;AX入栈,SP3004H,;BX入栈,SP3002H,;BX出栈给IP,SP3004H,IPBX,BX=3004H,IPBX,【例】若CPU中各寄存器及存储器参数如题图所示,试求独立执行如下指令后,CPU相应寄存器及存储器相应单元的内容是多少?,(1)MOVDX,BX+2(2)PUSHDX(3)MOVCX,BX(4)TE
10、STAX,1(5)MOVAL,SI(6)ADCAL,DI(7)DAA(8)INCSI(9)MOVDI,AL(10)XORAH,BL(11)JMPDX,;DX=0006H,BX=0004H;SP=FFFDH,SP=17C6H;CX=0004H,BX=0004H;AX=8094H,CF=0;AL=87H;AL=0CCH,CF=0;AL=0F4H;SI=0009H;DI=94H;AH=84H,BL=04H;CS=3000H,IP=17C6H,【例】下列程序执行完后,AX?MOVCX,0F902HXORAX,AXNOTAXSUBAL,CHJZ NEXTMULCLNEXT:SHRAX,CL,;CXF902H;AX0;AXFFFFH;AL06H;CF0;AXALCL000CH;AX0003H,AX0003H,课后作业,3.53,3.54,3.57,3.59,