ImageVerifierCode 换一换
格式:PPT , 页数:45 ,大小:2.17MB ,
资源ID:9112636      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9112636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2汇编语言.ppt)为本站会员(scg750829)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

2汇编语言.ppt

1、2019/7/24,汇编语言与汇编程序,1,第二章 汇编语言与汇编程序,单片机原理及应用,2019/7/24,汇编语言与汇编程序,2,学习要求 了解MCS-51汇编语言指令的形式,掌握指令的格式 掌握MCS-51单片机指令的寻址方式 掌握MCS-51汇编语言指令的分类及其使用 掌握常用的伪指令,2019/7/24,汇编语言与汇编程序,3,指令系统概述,汇编:源程序翻译成机器语言的过程 机器语言:二进制代码,CPU能够直接识别、并执行其操作 汇编语言:用助记符表示的语句;源程序 C51语言:语法同标准C语言。 开发效率高,可读性强,是目前使用最为广泛的单片机开发语言。 一条C语言通常需要由多条机

2、器语言组成。,2019/7/24,汇编语言与汇编程序,4,汇编语言的指令格式? 标号:操作码助记符 (目的操作数),(源操作数);注释 换行表示一条指令结束。例如: LOOP: MOV A, #40H ;取参数MOV R0, A,1.标号:指令的符号地址。 2.操作码助记符:指明指令功能。 3.操作数:指令操作对象。 数据、地址、寄存器名及约定符号。 4.注释行:说明指令在程序中的作用。 操作码和操作数是指令主体。,2019/7/24,汇编语言与汇编程序,5,1. 寻址方式,寻址方式,就是指如何找到存放被操作数据的位置(地址)的方法。,2019/7/24,汇编语言与汇编程序,6,立即寻址,由指

3、令直接给出操作数:8位和16位。数值前加“#”表示;若十六进制英文字母AF前加0,MOV A,#0B0H,速递快信,B0H,2019/7/24,汇编语言与汇编程序,7,直接寻址,指令直接给出操作数地址的寻址方式。,MOV A,3AH,XXH,F0H,2019/7/24,汇编语言与汇编程序,8,寄存器寻址,以通用寄存器的内容为操作数的寻址方式。 注:A和B既是通用寄存器,又是具有直接地址的特殊功能寄存器。,寄存器,MOV A,R1,10H,2019/7/24,汇编语言与汇编程序,9,寄存器间接寻址,以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。 寄存器前加,XXH,MOV A,R1,

4、可寻址内部RAM128B,寻址外部RAM,仅用于堆栈操作,34H,2019/7/24,汇编语言与汇编程序,10,变址寻址,操作数为程序存储器的地址,该地址是由DPTR或PC加上累加器A的内容形成的16位地址 只有读操作而无写操作,PC/DPTR 1000H,A 30H,变址寄存器,1000H+30H,65,MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR,2019/7/24,汇编语言与汇编程序,11,位寻址,对位地址中的内容作位操作的寻址方式 位寻址只能对有位地址的空间(20H-2FH和SFR的可寻址位)作寻址操作。,0,MOV C,37H,0,2019/7/24,汇编

5、语言与汇编程序,12,寻址空间,2019/7/24,汇编语言与汇编程序,13,判断以下指令源操作数的寻址方式,MOV A,#88H PUSH ACC POP ACC MOV 28H,R4 MOVX A,DPTR MOVC A,A+DPTR MOV A,R0 MOVX A,R0 CLR C SETB 00H,立即寻址 直接寻址 寄存器间接寻址 寄存器寻址 寄存器间接寻址 变址寻址 寄存器间接寻址 寄存器间接寻址 位寻址 位寻址,2019/7/24,汇编语言与汇编程序,14,2. 常用指令,MCS-51单片机共有111条指令,按功能分类,可分为5大类: 数据传送类指令(共29条) 算术操作类指令(

6、共24条) 逻辑操作类指令(共24条) 控制程序转移类指令(共17条) 布尔变量操作类指令(共17条),2019/7/24,汇编语言与汇编程序,15,(1) 数据传送类指令,累加器A,直接地址 direct,立即数 #data,寄存器 R0R7,寄存器间接 R0、R1,数据指针 DPTR,入、出栈 SP,入,出,位累加器C,1,1,2019/7/24,汇编语言与汇编程序,16,2019/7/24,汇编语言与汇编程序,17,传送:把源地址单元的内容传输到目的地址单元中去,源地址单元内容不变 数据传送指令不影响标志位 1. 以A为目的操作数MOV A,dir MOV A,#data MOV A,R

7、n MOV A,Ri 例:R120H,(20H)55H, 指令 MOV A,R1 ;执行后,A55H,2019/7/24,汇编语言与汇编程序,18,2.以Rn为目的操作数MOV Rn,dir MOV Rn,#data MOV Rn,A 例: (40H)30H, 指令 MOV R7,40H 执行后,R730H,3.以直接地址为目的操作数MOV dir1,dir2MOV dir,#data MOV dir,A MOV dir,Rn MOV dir,Ri 例:R0=50H,(50H)=10H, 指令 MOV 35H, R0 执行后,(35H)10H,2019/7/24,汇编语言与汇编程序,19,4.

8、 以寄存器间接地址为目的操作数MOV Ri,dir MOV Ri,#data MOV Ri,A 5. 查表指令(读程序存储器)MOVC A,(A+DPTR) MOVC A,(A+PC) 例:A20H,DPTR2000H,指令 MOVC A,(A+DPTR) 执行后,程序存储器2020H单元中的内容送入A。,2019/7/24,汇编语言与汇编程序,20,例:,MOV A,#30H MOV 4FH,A MOV R0,#20H MOV R0,4FH MOV 21H,20H,习题:用两种寻址方式实现,将片内RAM60H单元的数据传送给累加器A。,解:MOV A,#60H(),MOV R0,#60H M

9、OV A,R0 (),;A= 30H ;(4FH)= 30H ;R0= 20H ;(20H)= 30H ;(21H)= 30H,MOV R0,60H MOV A,R0(),MOV A,60H (),顺序执行下列指令序列,求每一步执行结果。,2019/7/24,汇编语言与汇编程序,21,说 明:,只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。,1. 一条指令中不能同时出现两个工作寄存器: 非法指令: MOV R1,R2 MOV R2,R0,2. 间址寄存器只能使用 R0、R1。 非法指令: MOV A,R2,3. SFR区只能直接寻址,不能用寄存器间接寻址。

10、非法指令:MOV R0,#80H MOV A,R0,2019/7/24,汇编语言与汇编程序,22,6. 访问外部数据RAMMOVX DPTR,A MOVX A,DPTR MOVX A,Ri MOVX Ri,A 例:DPTR2000H, 外部RAM中(2000H)=18H指令 MOVX A, DPTR ; 执行后,A18H例:P210H,R150H,A64H,指令 MOVX R1,A 执行后,外部RAM中(1050H)64H 7. 堆栈操作指令入栈 PUSH dir 出栈 POP dir,2019/7/24,汇编语言与汇编程序,23,8. 交换指令 (1)字节交换 XCH A,Rn XCH A,

11、Ri XCH A,dir (2)半字节交换 XCHD A,Ri (3)累加器A低4位与高4位交换SWAP A 例:A=80H, R0=32H, (32H)=FFH,指令 XCHD A, R0; 执行后, A=8FH, (32H)=F0H例:A35H, 指令 SWAP A ; 执行后, A=53H 9. 16位数据传送指令MOV DPTR,#data16,2019/7/24,汇编语言与汇编程序,24,例:将片内RAM 2AH和2BH单元中的低半字节拼成新字节,其中2BH单元的低半字节作为新字节的高半字节。,58H,MOV A,#0,MOV R0,#2AH,MOV R1,#2BH,XCHD A,R

12、0,SWAP A,XCHD A,R1,XCH A,20H,2019/7/24,汇编语言与汇编程序,25,例 解释下列语句,并指出该程序段的功能MOV R0,#61HMOV R0,#0XCH A,50HXCHD A,R0SWAP AMOV 60H,A 功能:将(50H)内的压缩BCD码转换呈非压缩BCD码送61H,62H,2019/7/24,汇编语言与汇编程序,26,练习:,说明程序执行过程中,SP的内容及堆栈中内容的改变过程。MOV SP,#30HMOV A,#20HMOV B,#30HPUSH APUSH B POP APOP B,;SP=30H ;A=20H ;B=30H ;SP=31H

13、(31H)=20H ;SP=32H (32H)=30H ;A=30H SP=31H ;B=20H SP=30H,2019/7/24,汇编语言与汇编程序,27,习题:找出指令错误并改正:,1MOV A,#1000H 2MOVX A,1000H 3MOVC A,1000H 4MOVX 60H,A 5MOV R0,60H MOV 61H,R0 6. XCH R1,R2 7. MOVX DPTR,#2000H 8. MOVX 60H,DPTR,;A1000H(A装1个字节数) ;A片外RAM(DPTR、Ri) ;A片外ROM(DPTR、PC) ;片内RAM(60H)A(应为MOV) ;片内RAM:(6

14、1H)(60H) (片内RAM可直接寻址) ;R1R2(必须有A参加) ;DPTR2000H(应为MOV) ;片内RAM片外RAM(必须有A参加),2019/7/24,汇编语言与汇编程序,28,(2) 算术操作指令,执行加、减、乘、除运算。有些算术指令执行的结果将使Cy,Ac,OV置位或复位,并影响累加器A的P 加法指令 (1)不带进位加法指令ADD A,#data ADD A,dir ADD A,Rn ADD A,Ri,1)对标志位的影响: Cy:若D7有进位,则置1; AC:若D3有进位,则置1; OV:CyCs=1,则置1 2)溢出规律:无符号数: 若Cy=1, 则溢出有符号数: 若OV

15、=1, 则溢出,2019/7/24,汇编语言与汇编程序,29,(2)加1指令INC A INC dir INC Ri INC Rn INC DPTR 除INC A会影响P外,其余均不影响各标志位,(3)带进位加法指令 ADDC A,dir ADDC A,#data ADDC A,Rn ADDC A,Ri 例:A的内容为C3H,R0的内容为AAH,Cy1。 指令 ADDC A,R0 执行后,A=6EH, Ac=0, Cy=1, OV=1,2019/7/24,汇编语言与汇编程序,30,MOV A,20H ADD A,23H MOV 26H,A MOV A,21H ADDC A,24H MOV 27

16、H,A MOV A ,22H ADDC A,25H MOV 28H,A MOV A,#0 ADDC A,#0 MOV 29H,A,程序功能: 3字节无符号数相加。 被加数放在内部RAM 20H22H。加数放在内部RAM 23H25H。结果放到内部RAM 26H29H。,2019/7/24,汇编语言与汇编程序,31,减法指令 (1)带借位减法指令SUBB A,dir SUBB A,#data SUBB A,Rn SUBB A,Ri 例: A=0C9H, R1=54H, Cy=1, 指令SUBB A, R1 ;执行后,A74H, Cy=0, OV=1 (2)减1指令DEC A DEC dir DE

17、C Ri DEC Rn,2019/7/24,汇编语言与汇编程序,32,二十进制调整指令DA A ;把A中按二进制相加后的结果调整成按BCD数相加的结果例: A=56BCD, B=67BCD, 执行指令 ADDC A, BDA A结果,A=23BCD,Cy=1 乘法指令MUL A, B 例:A50H, B0A0H, 指令 MUL A, B 执行后,A00H(低), B32H(高), OV=1, Cy=0 除法指令DIV A, B 例:A0FBH, B12H, 指令DIV A, B执行后 , A0DH(商), B11H(余数), OV=0, Cy=0,2019/7/24,汇编语言与汇编程序,33,

18、CLR CMOV A,#9AHSUBB A,60HADD A,61HDA AMOV 62H,A (1)已知:(60H)=24H,(61H)=72H,运行后,(62H)= ? (2)程序段执行何种操作,48H,2019/7/24,汇编语言与汇编程序,34,MOV A,40HSWAP AANL A,#0FHMOV B,#10MUL ABANL 40H,#0FHADD A,40HMOV 40H,A 问: 程序段执行何种操作?,2019/7/24,汇编语言与汇编程序,35,(3) 逻辑操作指令,1. 逻辑与ANL A,dir ANL A,#data ANL A,Rn ANL A,Ri ANL dir,

19、A ANL dir,#data可用于清“0”,2. 逻辑或ORL A,dir ORL A,#data ORL A,Rn ORL A,Ri ORL dir,A ORL dir,#data可用于置位,2019/7/24,汇编语言与汇编程序,36,3. 逻辑异或 “求反”XRL A,dir XRL A,#data XRL A,Rn XRL A,Ri XRL dir,A XRL dir,#data,4. 求反CPL A ; A中的内容按位取反 5. 清0CLR A ;A中的各位均为0,6. 循环移位RL A ;累加器A中的内容循环左移一位RR A ;累加器A中的内容循环右移一位RLC A ;A中内容连

20、同进位Cy循环左移一位RRC A ;A中内容连同进位Cy循环右移一位,2019/7/24,汇编语言与汇编程序,37,影响标志的指令,2019/7/24,汇编语言与汇编程序,38,(4)布尔变量操作,布尔处理器中,进位标志C相当于一般CPU中的累加器,通过C完成位的传送和逻辑运算 位地址范围:20H-2FH和SFR中的可寻址位 位地址的表达:例PSW中的位5 直接地址方式:0D5H 点操作符方式:PSW.5 位名称方式:F0 用户定义名方式:伪指令 bit USER bit F0定义后,允许用USER代替F0,2019/7/24,汇编语言与汇编程序,39,3. 位求反指令CPL C CPL bi

21、t 4.位传送指令 MOV C,bit MOV bit,C,1. 清0指令CLR C ;0CCLR bit ;0bit 2. 置位指令SETB C ;1CSETB bit ;1bit,5. 位逻辑“与”ANL C,bit ;(Cy) (Cy)(bit)ANL C,/bit ;(Cy) (Cy)( / bit) 6. 位逻辑“或”ORL C,bit ;(Cy) (Cy)(bit)ORL C,/bit ;(Cy) (Cy)(/bit),2019/7/24,汇编语言与汇编程序,40,3 伪指令,协助汇编,不产生相对应的操作码 1.常量 数值常量:N进制数,ASCII码如A 符号常量:由EQU定义,赋

22、值伪指令 例 AA EQU R3 给标号变量(AA)赋以数值或变量(R3)例, X1 EQU 2000H MAIN: MOV DPTR,#X1,2019/7/24,汇编语言与汇编程序,41,2.标号 指令标号 标号:操作码助记符 (目的操作数),(源操作数) 数据标号:DB和DW定义常数和变量DB DW 把项或项表的数值存入标号开始的连续单元中 DB的项是一个字节;例: DB 12H,A DW的项是一个字(两个字节),主要用来定义地址例: DW 1234H,5678H 存放在程序ROM中,2019/7/24,汇编语言与汇编程序,42,位置计数器LC,“$”:记录当前汇编地址 3.ORG:汇编起

23、始地址定位伪指令,用来规定目的程序的起始地址ORG nn ;nn为十进制或十六进制数指令地址 机器码 源程序ORG 0000H0000H 02 00 30 LJMP 0030HORG 0030H 0030H 78 30 MAIN: MOV R0,#30H0032H E6 MOV A,R0 4. END:汇编程序结束伪指令用在程序的末尾,表示程序结束,2019/7/24,汇编语言与汇编程序,43,ORG 0070H PWORD: MOV DPTR, #7000HMOVX A,DPTRANL A, #0FHSWAP AMOV B, AINC DPTRMOVX A,DPTRANL A, #0FHOR

24、L A, BINC DPTRMOVX DPTR, AEND,2019/7/24,汇编语言与汇编程序,44,4 指令的时序单片机以晶体振荡器的振荡周期(外部引入的时钟周期)为最小的时序单位以外接晶振为12MHz为例 振荡周期1/fosc=1/12MHz=0.0833us 状态周期2/fosc=2/12MHz=0.167us 机器周期12/fosc=12/12MHz=1us 指令周期(14)机器周期14 us,2019/7/24,汇编语言与汇编程序,45,5 小 结,指令格式标号:操作码助记符(目的操作数),(源操作数);注释 7种寻址方式立即寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址 5类系统指令数据传送指令,算术操作指令,逻辑操作指令,控制转移指令,布尔变量操作指令 作业习题2-5, 2-15,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报