第3章 单片机的汇编语言与程序设计.ppt
《第3章 单片机的汇编语言与程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章 单片机的汇编语言与程序设计.ppt(104页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,第3章 单片机的汇编语言与程序设计,3.2 指令系统简介,3.3 汇编语言的编程方法,3.1 汇编语言概述,3.1 汇编语言概述,汇编语言(Assembly Language)用助记(字)符代替操作码,用地址符号代替地址码的一种面向机器的程序设计语言; 汇编语言优点代码精炼、执行速度快,但不便于编写较复杂的程序; 汇编程序处理过程输入源程序检查语法正确性(如有语法错误,输出错误信息)翻译成二进制目标程序。,本章学习目标:,了解汇编语言的一般规则,借助指令手册能读懂汇编程序。,51系列单片机采用ASM-51指令格式,格式如下:,标号: 操作码 目的操作数,源操作数 ;注释,其中包含: 方括符
2、表示可选项 标号代表指令所在地址,1-8个字母/数字,“:”结尾 操作码就是指令功能助记符,指令实体 目的操作数 源操作数 注释,以“;”开头,一、 指令格式,二、常用符号,当前选中寄存器区的8个工作寄存器(R0R7),Rn,Ri,direct,- 8位内部RAM单元地址 00H7FH, 专用特殊功能寄存器SFR的地址80HFFH, 立即数(8位),#data,#data16, 立即数(16位),n=07,i=0、1,addr16, 16位目的地址,用于LCALL、LJMP指令 地址范围64KB ROM空间,addr11, 11位目的地址,用于ACALL、AJMP指令 地址范围2KB ROM空
3、间,rel,DPTR, 数据地址指针,可做16位间址寄存器,bit, 内RAM或SFR中的直接位寻址,A, 累加器,B, 专用寄存器,用于MUL和DIV指令,C, 位累加器 ( PSW.7 ),进位/借位标志, 间址或基址寄存器前缀如 Ri , A+DPTR,/, 位操作的前缀,表示对该位操作数取反,(X), X中的内容,((X)), 由X寻址的单元中的内容,箭头左边的内容被箭头右边的内容所代替,DPTR , A+PC,用何种方式寻找指令的操作数 或指令的执行地址,1、立即寻址,寻址空间:,程序存储器,操作数紧跟操作码OP后面,存放在程序存储器中,立即寻址:,在 哪 里 ?,用何种方式寻找,指
4、令的寻址方式:,指令的寻址方式:,三、 寻址方式,MOV A,# 30H,例1:,30H,MOV DPTR,# 8000H,例2:,80H,00H,2、直接寻址,寻址空间:,直接寻址,直接寻址是访问 SFR 的唯一方法,00H7FH 80HFFH,CPU内部,直接 间接,“与”,MOV A, 30H,例1:, ,ANL 30H,#30H,例2:, ,“结果”,3、寄存器寻址,寻址空间:,当前选定的寄存器内容就是实际操作数,MOV A,R3,例1:,ADD A,R3,例2:,寄存器寻址:,4、寄存器间接寻址,寻址空间:,寄存器间接寻址:,MOV R0,A,例1:,;累加器传送指令, ,MOVX
5、A,DPTR,例2:, ,“读”,“读”,5、基址寄存器加变址寄存器间接寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器 两者相加形成操作数地址。,寻址空间:,程序存储器(A+DPTR、A+PC),MOVC A,A+DPTR,例:,设(A)= 0FH (DPTR)= 2400H, ,“读”,“读”,MOVC A,A+DPTR,6、相对寻址,程序存储器,寻址空间:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-128+127,JNZ rel,例:,; 累加器A不等零则转移 设:rel=23H,(PC
6、)=2002H,rel=23H,修正后转移 目标地址D (PC) = 2025H,(PC) = 2 0 0 2 H,Rel = 2 3 H,),0,0,5,2,0,2,H,D =,(PC)=2112H,rel=F2H,修正后转移 目标地址 D (PC) = 2104H,例:DJNZ R7,rel ;(R7) 1不为“0”则转,(PC) = 2 1 1 2 H,Rel = F 2 H,),F,F,4,0,1,2,H,D =,7、位寻址,寻址空间:,片内RAM的20H2FH字节地址 位地址:00H7FH 共128位,SFR中11个能被8整除的字节地址 位地址请参看P26表 共83位,对内部RAM、
7、SFR的位地址空间进行访问,称为位寻址。位地址用于布尔指令。,例: SETB D5H ;将F0位置1 CLR C ; Cy位清0,寻址方式与相应的寻址空间,小结:,课堂练习,已知R0=23H, (23H)=78H,写出下列指令分别执行后寄存器或存储器的结果。 MOV A, #60H MOV A, 23H MOV 23H, #0F0H MOV A, R0 MOV A, R0 MOV R0, #45H,3.2 指令系统简介,MCS-51系统指令系统共111条,按操作功能分类:, 数据传送类(29条), 算术运算类(24条), 逻辑运算类(24条), 控制转移类(17条), 布尔处理类(17条),指
8、令学习要点,了解指令的操作 了解指令的寻址方式 了解指令对PSW的影响 合理使用指令,一、数据传送类(29条),用到的指令助记符有5种:,片内传送 MOV,片外传送 MOVX,查表传送 MOVC,累加器交换 XCH、XCHD、SWAP,堆栈操作 PUSH、POP,源操作数寻址方式(5种): 立即寻址、直接寻址、寄存器寻址、 寄存器间接寻址、变址寻址。 目的操作数寻址方式(3种): 直接寻址、寄存器寻址、寄存器间接寻址 除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。,1、MOV类传送指令,格式: MOV 目的字节,源字节,功能:把源字节内容送目的字节,源字节内容不变,MOV A
9、,#data,;立即数#data送累加器A,MOV Rn ,direct (n=07),;以direct为地址的单元的内容送寄存器Rn,MOV direct,Rn (n=07),;寄存器Rn内容送以direct为地址的单元,MOV Ri ,A (i=0、1),;累加器内容送以Ri内容为地址的单元,MOV类传送指令,MOV 片内传送指令,MOV类传送指令小结,MOV 片内传送指令,使用MOV指令的两点说明: 源字节与目的字节不同(direct除外) 寄存器寻址与寄存器间接寻址间不相互传送,2、MOVX类传送指令,累加器A与外部RAM传送数据用 MOVX, 外部RAM送累加器A,MOVX A,Ri
10、 (i=0、1),;以Ri内容为外部RAM地址的单元中的数送A, 累加器内容送外RAM,MOVX Ri ,A (i=0、1),;累加器内容送以Ri内容为地址的外部RAM单元, 外部RAM送累加器A,MOVX A,DPTR,;以DPTR内容为地址的外部RAM单元中的数送A, 累加器内容送外RAM,MOVX DPTR ,A,;累加器内容送以DPTR内容为地址的外部RAM单元,MOVX类传送指令小结,说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别:内
11、部RAM间可以直接进行数据的传递,而外部则不行。,2.要读或写外部的RAM,必须要知道RAM的地址,在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址。高8位地址由P2口来提供。 3.使用时应先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。,例:将片外RAM 120H单元的内容传送到片外RAM 地址为78H的单元。,MOV DPTR,#0120H,MOVX A,DPTR,MOV R0,#78H,MOVX R0,A,例:将片内RAM 12H单元的内容传送到片内RAM 地址为78H的单元。,MOV 78H,12H,;
12、外部RAM送累加器A,;累加器内容送外RAM,MOV P2,#00H,3、MOVC类传送指令,MOVC类传送指令,均为基址加变址寄存器寻址:,MOVC A,A+DPTR, 以DPTR作基址加变址寻址,长查表指令,16位,MOVC A,A+PC, 以PC作基址加变址寻址,短查表指令,MOVC类传送指令小结,例:在外部ROM中存放09的平方值。根据累加器 A中的数( 09 ),查找对应的平方值。,用DPTR作基址寄存器 指向表格的首地址 用A作变址寄存器 实际上A中的值是表格中的 第几项,09H,;设(A)= 03H,查“3”的平方,用PC作基址寄存器,它并不指向表格首址,;是PC当前值与所查表格
13、首址之间的距离 ;即(PC)+ #data TABBEL表格首址,设(A)= 03H,是表格中的第3项,;单字节指令,设指令在ROM中的地址为1FF0H,ADD A,#data,MOVC A,A+PC,000FH,;#data是变址调整值,TABBEL,4、 XCH、XCHD、SWAP类传送指令,5、 堆栈操作指令, 进栈指令,PUSH direct,;direct地址单元的内容压入SP指向的单元, 出栈指令,POP direct,;SP指向的单元内容弹出到以direct为地址的单元,练习,判断下列指令的对错。,MOV R1,R2,MOV A, R3,MOVX R1,B,MOVC A+DPTR
14、,A,XCH 30H,40H,设在ROM 中地址为50H开始的区域建有0-5的共阴段码表 ORG 0050H SEG: DB 3FH,06H,5BH,4FH,66H,6DH 利用查表指令找到4的段码并输出到P2口。,练习,二、算术运算类(24条),用到的指令助记符有8种:,加法指令 ADD、ADDC、INC、DA,减法指令 SUBB,DEC,乘除指令 MUL,DIV,算术运算类指令执行结果影响标志位:CY、AC、OV,1、不带进位加ADD,ADD A,#data,2、带进位加ADDC,ADDC A,#data,试分析执行下面的指令后,程序状态字PSW中 CY,OV的内容是什么?,1,0,0,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 单片机的汇编语言与程序设计 单片机 汇编语言 程序设计
限制150内