第3章指令系统与汇编语言程序设计.ppt
《第3章指令系统与汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章指令系统与汇编语言程序设计.ppt(52页珍藏版)》请在三一办公上搜索。
1、3.1 寻址方式 3.2 指令系统 3.3 汇编语言程序的汇编与调试 3.4 汇编语言程序设计举例 3.5 计算机中的数据编码,第3章 指令系统与汇编语言程序设计,3.1 寻址方式,寻址方式是指在指令执行过程中,如何找到操作数有效地址的方法。绝大多数指令执行时都需要使用操作数,而操作数可以指一个直接参与指令运行的数据,也可以指一个寄存器,还可以指一个存储器单元。MCS-51单片机指令系统提供了7种不同的寻址方式。,一、寻址方式见动画五寻址方式。,立即寻址方式 直接寻址方式 寄存器寻址方式 寄存器间接寻址方式 相对寻址方式 变址寻址方式 位寻址方式,3.1 寻址方式,寻址方式,3.2 指令系统,
2、数据传送指令(29)算术运算指令(24)指令系统 逻辑运算指令(24)程序控制指令(22)位操作指令(12),描述指令的一些符号的意义:,数据传送指令实现计算机内不同存储区域之间的信息传递。MCS-51指令系统中共有29条数据传送指令,不同存储单元之间的数据传递如图所示。,3.2 指令系统,1.内部RAM、特殊功能寄存器之间的数据传送(使用“MOV”作为操作码助记符,共有16条)2累加器与外部RAM之间的数据传送(这类指令的操作码助记符为“MOVX”,对外部RAM单元只能使用间接寻址方式,即可以使用DPTR和Ri作间址寄存器。)3程序存储器中的数据传送到累加器A的指令(这类指令的数据传送是单向
3、的,只能从程序存储器向累加器传送数据。指令助记符为“MOVC”,共两条指令。)4内部RAM单元与累加器A之间数据交换指令(包括三种指令:字节交换指令、半字节交换指令、累加器A的高4位与低4位交换指令。)5堆栈操作指令(包括进栈、出栈指令),3.2 指令系统,例1 分析下列指令的寻址方式以及指令执行后存储单元和寄存 器的内容。MOV A,#20H;目的操作数采用寄存器寻址,A=20H MOV 32H,#23H;目的操作数采用直接寻址,(32H)=23H MOV R4,#2FH;目的操作数采用寄存器寻址,R4=2FH MOV R0,#5AH;目的操作数采用寄存器间接寻址,(R0)=5AH MOV
4、DPTR,#203FH;目的操作数采用寄存器寻址,DPTR=203FH,(1)立即数传送指令。MOV A,#data;Adata MOV direct,#data;(direct)data MOV Rn,#data;Rn data MOV Ri,#data;(Ri)data MOV DPTR,#data16;DPH data 高8位,DPLdata 低8位,3.2 指令系统,例2 分析指令的寻址方式和执行结果 MOV P2,R2;目的操作数采用直接寻址,源操作数为寄存器寻址;P2=R2,该指令等价于MOV 0A0H,R2 MOV 2FH,30H;两个操作数均采用直接寻址,(2FH)=(30H)
5、MOV 20H,R1;目的操作数为直接寻址,源操作数为寄存器间接寻址,执行 结果:(20H)=(R1),(2)内部RAM 单元之间的数据传送指令。MOV direct1,direct2;(direct1)(direct2)MOV direct,Rn;(direct)Rn MOV Rn,direct;Rn(direct)MOV direct,Ri;(direct)(Ri)MOV Ri,direct;(Ri)(direct),3.2 指令系统,例3 分析下列指令的寻址方式和执行结果 MOV A,R5;两操作数均采用寄存器寻址,A=R5 MOV A,0F0H;原操作数为直接寻址,A=(0F0H)MO
6、V A,R1;源操作数为寄存器间接寻址,A=(R1),(3)与累加器有关的数据传送指令 MOV A,Rn;ARn MOV Rn,A;RnA MOV A,direct;A(direct)MOV direct,A;(direct)A MOV A,Ri;A(Ri)MOV Ri,A;(Ri)A,3.2 指令系统,这类指令的操作码助记符为“MOVX”,对外部RAM单元只能使用间接寻址方式,即可以使用DPTR和Ri作间址寄存器。MOVX A,DPTR;A(DPTR)MOVX DPTR,A;(DPTR)A MOVX A,Ri;A(Ri)MOVX Ri,A;(Ri)A例3.4 已知DPTR=2000H,片外R
7、AM(2000H)=05H,R1=0F0H,片外RAM(0F0H)=0A0H。MOVX A,DPTR;指令执行后,A=05H MOVX R1,A;指令执行后,片外RAM(0F0H)=05H,3.2 指令系统,这类指令助记符为“MOVC”,共两条指令。MOVC A,A+DPTR;A(ADPTR)MOVC A,A+PC;A(APC)例3.5 把累加器A中的十六进制数字00H0FH转换成ASCII码。INC A;调整偏移量(数据表的首地址与MOVC指令间隔1个单元)MOVC A,A+PC;查表取数RET;子程序返回DB 30H,31H,32H,33H,34H;在程序存储器中顺序存放DB 35H,36
8、H,37H,38H,39H;0F的ASCII码DB 41H,42H,43H,44H,45H,46H如果累加器A=0FH,则执行INC A 后,A=10H,程序存储器取出MOVC指令后,PC=2001H,则A+PC=2011H,于是执行 MOVC 指令后A=(2011H)=46H,即将累加器A中十六进制数字F 转换成相应的ASCII 码46H。,3.2 指令系统,(1)字节交换指令,XCH A,Rn;A Rn XCH A,direct;A(direct)XCH A,Ri;A(Ri)(2)半字节交换指令 XCHD A,Ri;A(D3 D0)(Ri)(D3 D0),即累加器A的低4位与Ri间址的内部
9、RAM单元的低4位交换。(3)累加器A的高4位与低4位交换指令SWAP A;A(D3 D0)A(D7 D4),3.2 指令系统,(1)进栈指令PUSH direct;SPSP+1,(SP)(direct)(2)出栈指令POP direct;(direct)(SP),SPSP 1例3.8 已知SP=3AH,DPTR=1234H,则 PUSH DPL;SPSP+1=3BH,(3BH)=34H POP DPH;SPSP+1=3CH,(3CH)=12H 执行指令后,SP=3CH,(3CH)=12H,(3BH)=34H,3.2 指令系统,加减运算指令 算术运算指令 乘除法指令 十进制调整指令,3.2 指
10、令系统,(1)加法指令ADD(Addition),指令格式:ADD A,source指令功能:将累加器和源操作数相加,结果送累加器A,源操作数不变。源操作数有4种寻址方式,所以ADD指令有4种形式:ADD A,Rn;A+RnA ADD A,direct;A+(direct)A ADD A,Ri;A+(Ri)A ADD A,#data;A+dataA例如,A=0C0H,R1=0AFH,执行ADD A,R1 指令。11000000+1010111101101111ADD指令影响程序状态字PSW的CY、AC、OV位。,3.2 指令系统,(2)带进位加法指令ADDC(Addition with Car
11、ry),指令格式与加法指令相同,指令功能是将累加器A、不同寻址方式的源操作数以及进位标志CY相加,运算结果送累加器A。带进位加法指令共4条:ADDC A,Rn;A+Rn+CYA ADDC A,direct;A+(direct)+CYA ADDC A,Ri;A+(Ri)+CYA ADDC A,#data;A+data+CYA ADDC指令对状态标志位的影响同ADD指令。,3.2 指令系统,(3)带借位减法指令SUBB(Subtraction with Borrow),与加法指令相似,目的操作数为累加器A,源操作数有4种寻址方式。所以带借位减法指令有4种形式:SUBB A,Rn;A-Rn-CYA
12、SUBB A,direct;A-(direct)-CYA SUBB A,Ri;A-(Ri)-CYA SUBB A,#data;A-data-CYA 例如,若A=0C0H,R0=7AH,CY=1,执行指令:SUBB A,R0 执行结果为:A=45H,CY=0,AC=1,OV=1。若进行不减借位的减法运算,只需将借(进)位标志CY清零,例如CLR C。带借位减法指令对状态标志位的影响与加法指令相同。,3.2 指令系统,(4)加1指令INC(INCrement destination by one),指令格式:INC dest执行操作是把dest的内容加1,结果送回原单元。加1指令共有以下5种形式:
13、INC A;A+1A INC Rn;Rn+1RnINC direct;(direct)+1(direct)INC Ri;(Ri)+1(Ri)INC DPTR;DPTR+1DPTR 加1指令主要用于修改地址指针和计数次数,它对CY、AC、OV 没有影响。,3.2 指令系统,(5)减1指令DEC(Decrement),减1指令与加1指令格式相似,只有一个操作数,该指令共有4种形式:DEC A;A-1A DEC Rn;Rn1Rn DEC direct;(direct)-1(direct)DEC Ri;(Ri)-1(Ri)这类指令不影响CY、AC、OV。,3.2 指令系统,(6)乘法指令MUL,(7)
14、除法指令DIV 指令格式:DIV AB 指令功能是用A中8位无符号数除以B中8位无符号数,所得商 存入A中,余数存入B中,并将CY和OV置0。只有当除数B=0 时,OV置1,表示除法的结果无意义。例如 A=0F4H,B=0AH,执行指令DIV AB 执行结果为A=18H,B=04H,OV=0,CY=0,3.2 指令系统,指令格式:MUL AB指令功能:把累加器A和寄存器B中的无符号数相乘,所得16位乘积的低位字节存入A中,高位字节存入B中。例如 A=1AH,B=20H,执行指令MUL AB执行结果为A=40H,B=03H,OV=1,CY=0乘法运算影响PSW的状态,进位标志位CY总是清0。,(
15、8).十进制调整指令,功能:把A中的数作为两个BCD数相加之和进行调整,得到 两位正确的BCD数。形式:DA A例如:73-54=19 先执行9AH-54H,得到补熟46H,再执行73H+46H=0B9H,最 后执行调整指令将0B9H加上60H得到19H,即得到正确的 BCD数。,3.2 指令系统,逻辑与运算指令(6条)逻辑或运算指令(6条)逻辑运算指令 逻辑异或运算指令(6条)累加器清0和取反指令(2条)循环移位指令(4条),3.2 指令系统,这类指令的助记符为ANL,ANL A,Rn;ARnA ANL A,direct;A(direct)A ANL A,Ri;A(Ri)A ANL A,#d
16、ata;AdataA ANL direct,A;(direct)A(direct)ANL direct,#data;(direct)data(direct)例如:若A=0A6H,R1=0A4H,执行ANL A,R1 后,A=0A4H逻辑与运算常用作字节清零或位清零。,3.2 指令系统,这类指令的助记符为ORL,ORL A,Rn;ARnA ORL A,direct;A(direct)A ORL A,Ri;A(Ri)A ORL A,#data;AdataA ORL direct,A;(direct)A(direct)ORL direct,#data;(direct)data(direct)例如 把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 汇编语言 程序设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2312877.html