




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/10/30,email:qinyemei,1,单片机原理及应用,主讲:覃业梅 中南林业科技大学涉外学院,第三章 mcs-51的指令系统,2019/10/30,2,3.1 指令系统概述,mcs51单片机共有111条指令 单字节指令49条 双字节指令45条 三字节指令17条 单周期指令64条 双周期指令45条 四周期指令2条(乘法、除法) 数据传送类指令28条 算术运算类指令24条 逻辑操作类指令25条 位操作指令17条 控制转移类指令17条,2019/10/30,3,3.2 指令格式,mcs51单片机汇编语言指令由操作码和操作数两部分组成。 指令的格式为: 【标号】:操作码 【目的操作数】,【源操作数】;注释 标号表示该指令的符号地址,可以是数字和字母或字母和数字的组合 操作码规定了指令所实现的操作功能 目的操作数指令执行后结果的存放的地方 源操作数参加指令执行的数据来源 注释是为方便用户阅读而加的注释,可有可无,注意:一条指令中可以没有标号、操作数和注释,但是一定要有操作码。,2019/10/30,4,3.3 指令系统的寻址方式,寻址方式:在指令中说明操作数所在地址的方法 单片机存储数的地方有:片内ram(地址为00h7fh)、通用寄存器(r0r7)、特殊功能寄存器(地址在80hffh)以及片外ram,除此以外,程序存储器还可以存放表格等数据。,2019/10/30,5,2019/10/30,6,-128127,2019/10/30,7,寻址问题,如果某条指令还有两个操作数,例如mov a,data,它究竟属于立即寻址还是寄存器寻址?,这要看以哪个操作数为参照物了。因为操作数分为源操作数(数据从哪来)和目的操作数(数据准备送到哪去),所以在讨论上面这条指令时,对于源操作数data是“立即寻址”,但对于操作数a来说是“寄存器寻址”,2019/10/30,8,3.5 mcs-51指令系统分类介绍,符号指令的操作数中使用的符号 rn当前寄存器组r0r7 ri间接寻址的2个通用寄存器r1和r0 direct内部ram或sfr,表示对它们直接寻址 data立即数 rel相对转移偏移量 bit内部ram或sfr中的位地址 /bit对bit取反 addr11,addr1611或16位目的地址 间址寄存器的前缀标志 (x)x中的内容 (x)由x寻址的单元中的内容,2019/10/30,9,1、数据传送类,dptr,a+dptr,a+pc,movc,空间是256b,空间是64kb,2019/10/30,10,堆栈操作 push direct ;(sp)+1sp, (direct) sp pop direct ;(sp)direct,(sp)-1sp 字节交换 xch a, xchd a, ri,注意:顺序,rn direct ri,2019/10/30,11,例题,在8051单片机片内ram中,已知(30h)38h,(38h)40h,(40h)48h,(48h)90h,写出下列指令按顺序执行后的结果,mov a,40h mov r1,a mov p1,0f0h mov r1,#30h mov dptr,1234h mov 40h,38h mov r1,30h mov 90h,r1 mov 48h,30h mov a,r1 mov p0,p1,; ( a)48h,; ( r1)48h,; ( p1)0f0h,; ( 90h)30h,; ( dptr ) 1234h,;(40h)40h,; ( r1)38h,; ( p1)38h,;(48h)38h,; ( a)40h,; ( p0)38h,执行后:(a)=40h, (dptr)=1234h, (30h)=38h, (38h)=40h, (40h)=40h, (48h)=38h, (p1)=38h, (p0)=38h,2019/10/30,12,例题,1、 (a)=85h,(dptr)=2100h,执行movc a,a+dptr 2、a=12h,ri=50h,(50h)=34h,则执行完指令xchd a,ri后的a,ri,50h,执行后a51h,a14h,ri50h,(50h)32h,2019/10/30,13,例题,mov a,0 mov r0,61h mov r0,0 xch a,50h xchd a,r0 mov 60h,a,;r061h,;(61h)00h,;a37h,(50h)00h,;a30h,(61h)07h,若执行下列程序前,(50h)37h,,;a00h,;(60h)30h,执行完本段程序后,(50h)00h,(a)30h,(r0)61h,(61h)07h,(60h)30h。既这段程序的作用是:将片内ram50h单元的8位数据中的低4位取出,送片内ram61h,而高4位取出,送片内ram60h,2019/10/30,14,2、算术操作类,(1) 加法类 add/addc a,#data direct rn ri,* 对cy、ac、ov、p 均有影响 * psw的组成,第6、7位不同时进位,则ov=1,2019/10/30,15,subb a,,#data direct rn ri,* 对cy、ac、ov、p 均有影响 * psw的组成,第6、7位不同时借位,则ov=1,(2) 减法类,2019/10/30,16,(3) 加1,减1类,inc dec * 影响p,a direct rn ri dptr,a direct rn ri,例:若a32h,(50h)f3h 则执行完下列指令后,a?,50h? inc a inc 50h,解:a33h,(50h)f4h,2019/10/30,17,(4) bcd码调整,da a * 仅当两个bcd码相加时,才对其结果进行调整,该指令仅接在add/addc后 * 低半字节9或ac=1时,低4位+6,即(a)+6a 高半字节9或c=1时,高4位+6,即(a)+60ha,bcd码(binary-coded decimal)或称二-十进制代码,是一种二进制的数字编码形式,用二进制编码的十进制代 码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。逢9(1001)进1。,2019/10/30,18,(5) 乘除法,mul ab ;(a) (b) (b)(a) * 当乘积255时,ov=1。 div ab ;(a) (a)为商 ;(b) (b)为余数 * 当(b)=0时,ov=1。,a存低8位,b存高8位,2019/10/30,19,例题,1、设(a)=53h,(r0)=0fch执行指令:add a,r0 2、c=1,执行指令后a的内容 mov a,#20h mov b,a add a,b subb a,#10h,执行结果: (a) 01010011 +(r0) = +11111100 (a) 01001111 cy=1,ac=0,ov=0,p=1。,执行结果: (a)=2fh,2019/10/30,20,3、逻辑运算类,clr cpl rl rlc rr rrc swap,a,anl orl a, xrl,direct rn ri #data,anl orl direct, xrl,a #data,一个操作数,两个操作数,带进位,2019/10/30,21,例题,1、若a36h,(30h)=1eh,则执行下列指令后,a=?,(30h)=? anl a,0fh anl 30h,f0h,(a)06h,(30h)10h,执行完该指令后,(a)47h,则执行完该指令后,ac7h,cy0,2、若a8eh,则执行指令 rr a后,a?,3、上题中,c=1,执行rrc a后,a=?c=?,2019/10/30,22,4、控制转移类,ajmp addr11 ;低11位地址变,高5位不变 sjmp rel ljmp addr16 ;16位地址 jmp a+dptr jz(jnz) rel ;对a的判断 cjne a, direct, rel a, cjne rn, #data ri, djnz rn,rel djnz direct,rel,无条件跳转,条件跳转,addr11,addr16,rel都可用标号表示,间接地址作为下条指令的地址送入pc,2019/10/30,23,acall addr11 ;低11位地址变,高5位不变 lcall addr16 ;16位地址 ret reti nop,调用,子程序,注意: 在调用子程序时(sp)+1sp,(pcl) sp; (sp)+1sp,(pch) sp; 在子程序返回时 (sp) pch, (sp)-1sp; (sp) pcl, (sp)-1sp;,2019/10/30,24,例题,1、kwr:ajmp 100h kwr地址为1030h,执行后程序转移到 ; kwr地址为3030h,执行后程序转移到 ; 2、krd:sjmp pkrd pkrd地址为0123h,目的地址;krd值为0100h。 rel=0123h-(0100h+2)=21h 3、pm: mov r1,a rl a add a,r1 mov dptr,#pmtb jmp a+dptr pmtb: ljmp pm0 ;转向命令0处理入口 ljmp pm1 ;转向命令1处理入口 ljmp pm2 ;转向命令2处理入口 ljmp pm3 ;转向命令3处理入口,1100h,3100h,2019/10/30,25,例题,4、若(sp)=60h,标号ma值为1123h,子程序sub位于0345h,执行: ma:acall sub 结果: (sp)= , (61h)= , (62h)= , (pc)= 。 5、若(sp)=60h,标号strt值为0100h,子程序dir位于8100h,执行: strt:acall dir 结果: (sp)= , (61h)= , (62h)= , (pc)= 。 6、若(sp)=62h, (62h)=07h, (61h)=30h,执行: ret 结果: (sp)= , (pc)= 。,62h,25h,11h,1345h,62h,03h,01h,8100h,60h,0730h,2019/10/30,26,5、位操作类,mov c,bit mov bit ,c clr cpl c或bit setb anl c, bit或/bit orl jc(jnc) rel ;对c的操作 jb(jnb) bit, rel jbc bit, rel,位传送,位条件转移,2019/10/30,27,指令练习,rr34:clr a mov r0,#30h mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年如何解决护理工作中的伦理冲突与试题及答案
- 2024年高级审计师新颖试题及答案总结
- 深入了解中级会计与审计的不同定位试题及答案
- 初级审计师考试真题分享试题及答案
- 中级会计考试复习试题及答案
- 审计中的伦理与合规试题及答案
- 消防演练效果评估指标体系的构建与应用研究试题及答案
- 2024年无人机操作执照考试试题及答案
- 深入探讨无人机执照考试的准备试题及答案
- 消防安全评价报告的撰写规范试题及答案
- 计划生育选择试题及答案
- 法律文化-形考作业3-国开(ZJ)-参考资料
- 2025届东北三省四市高三第二次联考英语试卷含答案
- 2025-2030中国振动监测系统行业市场发展趋势与前景展望战略研究报告
- 《中华茶艺文化》课件
- 华为系统面试题及答案
- 主题班会:高中男女生正常交往课件
- 2025年第33批 欧盟REACH SVHC高度关注物质清单247项
- 漳州市城市规划管理技术规定
- T8联考·2025届高三下学期3月联合测评数学试卷(含答案)
- 以太网技术相关的重要考试题目试题及答案
评论
0/150
提交评论