桂林电子科技大学 微机原理课件d2.5

上传人:精****档 文档编号:52489786 上传时间:2018-08-22 格式:PPT 页数:70 大小:893.50KB
返回 下载 相关 举报
桂林电子科技大学 微机原理课件d2.5_第1页
第1页 / 共70页
桂林电子科技大学 微机原理课件d2.5_第2页
第2页 / 共70页
桂林电子科技大学 微机原理课件d2.5_第3页
第3页 / 共70页
桂林电子科技大学 微机原理课件d2.5_第4页
第4页 / 共70页
桂林电子科技大学 微机原理课件d2.5_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《桂林电子科技大学 微机原理课件d2.5》由会员分享,可在线阅读,更多相关《桂林电子科技大学 微机原理课件d2.5(70页珍藏版)》请在金锄头文库上搜索。

1、掌握指令应该注意的问题掌握指令应该注意的问题1 1、指令格式、指令格式 2 2、指令功能、指令功能 ( ( 助记符 的含义)3 3、指令操作数的寻址方式、指令操作数的寻址方式4 4、指令对、指令对标志位的的影响2.5 8086指令系统指令描述缩写符号缩写符号意义 OPRD(DST,SRC) 操作数(目的、源) REG(R)寄存器 MEM(M)存贮器 D88位位位移量 D1616位位位移量 Imm(DATA)立即数 交换或替代(传送) 包含的内容 或( )其中的内容为地址2.5.1 数据传送指令一、通用传送指令特点:通用传送指令不影响标志位。1. MOV指令格式:MOV DST,SRC;DSTS

2、RC DSTR,MSRC R,M,Imm说明:2)DST,SRC数的类型应一致。MOV AL,1000H; MOV AX,BL ; MOV AL, 2BX ; 传送8位数据MOV AX, 2BX ; 传送16位数据MOV 2BX, 8DH; 1)目的操作数无立即寻址寻址方式。MOV 03H,AL;4)立即数不能直接送段寄存器,段寄存器间的数据也不能直接传送。MOV DS,1000H; MOV ES,DS; 3)两个操作数不能同时为存储器寻址存储器寻址。MOV BX , SI20H ; 5)不能改变CS的值。MOV CS,AX; 2、堆栈操作指令 (1)SP赋初值格式:MOV SP, Imm(1

3、6);SP 16位立即数用途:设置栈底,规定堆栈的大小。例:设SS5000HMOV SP, 2500HSP(52500H)SS(50000H)栈底(2)压栈指令格式:PUSH SRC;操作: (SP 1 ,SP 2)SRC, SPSP2说明:SRC=R,M,且为字类型例: 设SS5000HMOV SP, 2500HPUSH CXSS(50000H)SP(52500H)SP(524FEH)CX31H 25HCH CL31H25H栈顶栈顶栈底9CH38HSSSP(51002H) SP(51000H)AXAH AL10H00H(3)弹出指令格式:POP DST 操作: DST(SP,SP+1),SP

4、SP+2 说明: DST=R,M,且为字类型 例: POP AXXXXX10H00H栈顶栈顶栈顶栈顶用途:1)保护数据PUSH AX;PUSH BX;:POP BX;POP AX; AL AHBL BH AL AHSSSPSPSP33H 22H78H 56H 34H 12HSSSPSPSP2)数据交换 例如:PUSH AX; PUSH BX; : POP AX; POP BX;12H 34H56H 78H56H 78H12H 34HAXBXSPSP注: XCHG DS,AX;XCHG AX,9988H; 3、数据交换指令格式:XCHG DST,SRC; DST SRC 说明:DSTRSRCR,

5、M例: XCHG AX,BX;XCHG AX,BX;XCHG AX,DAT2BXSI;4.字节交换指令格式:XLAT; TABEL +0 30H 功能:ALBX+AL,完成代码转换。 +1 31H 例:将AL中的1位BCD数(05H)转换为 +2 32H ASCII码。 +3 33HMOV BX,OFFSET TABEL +4 34HXLAT +5 35H 操作:EA=BX+AL=0005H +6 36HAL 35H +7 37H 结果:AL=35H(5的ASCII码) +8 38H+9 39H 二、目标地址传送指令功能:用于传送操作数的段地址/偏移地址。说明:DSTR, SRCM1. 有效地

6、址送寄存器格式:LEA DST,SRC;功能:将SRC的有效地址取出送寄存器DST。例:设BX508AH, SI 0054HLEA BX, SI 1055H 结果: BX10A9H, SI 0054H2. 地址指针送寄存器和DS/ES格式:LDS DST,SRC;取DS段地址指针LES DST,SRC;取ES段地址指针功能:从SRC指定的内存中取出4字节数,前两 个字节送DST寄存器,后两个字节送DS/ES。用途:在串操作指令前设定源串/目的串的地址指针。例:设DS2500H, BX 2400HLDS SI, BX 1008H ;三、标志寄存器栈操作指令(1)标志压栈指令格式:PUSHF;操作

7、:(SP-1,SP-2)FR ,SPSP-2 (2)标志弹出指令格式:POPF;操作 : FR(SP,SP+1);SPSP+2注意:POPF会影响FR的内容2.5.2 算术运算类指令一.加/减指令 1.格式加 ADD DST, SRC; DSTDST+SRC带进位加 ADC DST, SRC; DSTDST+SRC+CF减 SUB DST, SRC; DSTDST SRC带借位减 SBB DST, SRC; DSTDST SRCCF取负 NEG DST; DSTDST(变补)2.说明(1) SRCR,M,Imm DSTR,M(2)SRC,DST数的类型应一致,且不能 同时为存储器寻址。(3)影

8、响全部状态标志例2.21 已知已知DS=2000H,BX=250BH,AX=8811HDS=2000H,BX=250BH,AX=8811H。SUB AXSUB AX,BXBX则该指令的操作过程如图则该指令的操作过程如图2.262.26所示。所示。(4)ADC、SBB指令用于多字/字节相 加/减例2.19 两个32位无符号数相加DST DX,AXSRC BX,CXADD AX,CX; 低位字相加ADC DX,BX; 带进位的高位字相加二.比较指令格式:CMP DST,SRC ; DST SRC说明:同加/减指令应用:(1)比较两数是否相等(ZF)ZF=1 DST = SRCZF=0 DST SR

9、C(2)比较两数的大小无符号数(CF)CF=1 DST 1、判断下列指令的对错,设变量均为字变量 (1)MOV SI,100; (2)MOV BX,DAT1BX; (3)MOV AX,DX; (4)MOV BP,AL; (5)MOV AX,05H; (6)MOV CS,AX; (7)MOV DS,AX; (8)AND 0FFFFH,AX; (9)MOV DAT1,DAT2; (10)MOV BX,04H;(11)MOV DAT1BX,04H; (12)MOV WORD PTRBXSI,04H; (13)MOV AX,SIDI; (14)MOV DAT1,04H; (15)AND AX,AX;

10、(16)OR AX,0FH; (17)PUSHF; (18)MUL AL,05H; (19)SUB SI,DI; (20)MUL 16; (21)MOV DS,1000H; (22)ROL AL,06H;(23)MOV SP,AX; (24)PUSH CS; (25)ADD AL, SI+DI; (26)SUB BP+DI-1000,AL; (27)ADD BH,BL - 3; (28)ADD BX,BX; (29)MOV AX,BX+DI; (30)LEA BX+DI , AX; (31)PUSH SI; (32)PUSH AL; (33)XCHG ES:BP,AL; (34)XCHG BP

11、,ES;求求3 3个数中的最大数个数中的最大数main( ) /*main( ) /*主函数主函数* */ / int a,b,c,d; int a,b,c,d;scanf(“%d,%d,%d”,);d=max(a,b,c); d=max(a,b,c);printf(“Theprintf(“The maximal value is %dn”,d); maximal value is %dn”,d); intint max(x,y ,z) max(x,y ,z)intint x,y,z; x,y,z; intint m; m; if (x=y) if (x=y) if (y=x) if (y=x) if (z=x) if (z=x) return(m); return(m); 输入输入a,b,ca,b,c求出最大数送求出最大数送d d打印输出打印输出d dy yx x yx=10;data segmentx dw ?;data endscode segmentassume CS:code, DS:datastart: mov ax,10;mov x, ax;code ends

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号