




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第3讲:MCS-51的指令系统,MCS-51单片机原理及设计,2,本讲课程主要内容,1概述251指令系统的寻址方式351的指令系统及一般说明3.1数据传送类3.2算数操作类3.3逻辑运算类3.4控制转移类3.5位操作类,MCS-51单片机的指令系统,3,51指令的概述,51共有指令111条字节:单字节指令49条双字节指令45条三字节指令17条执行周期:单机器周期指令64条双机器周期指令45条4机器周期指令2条,4,51指令的概述,汇编指令的基本结构:标号:操作码助记符第1操作数,第2操作数;注释Loop1:mova,#0ffh;累加器A赋值为ff标号:表示该指令所在的符号地址,一般由字母和数字组成,第一位为字母,其余位为字母、数字任选。操作码助记符、第1操作数和第2操作数:指令的核心部分。对于某些指令可能不存在完整的两个操作数。注释:是由用户加入的文本,对汇编程序不起任何作用,只是方便阅读。*第1操作数又称目的操作数,第2操作数又称源操作数*51不区分大小写,5,51指令的概述,汇编语言与机器语言(机器码)CPU只能执行机器语言(由8位二进制代码组成,分为1字节、2字节、3字节)。例如:RET22HMOVA,#0fh74H0FHMOV74H,#0BH75H74H0BH汇编程序汇编语言机器语言反汇编程序,6,MCS-51的寻址方式,寻址方式是指寻找、确定参与操作的数据的地址的方式,包括:1寄存器寻址2立即寻址3直接寻址4寄存器间接寻址5基址寄存器加变址寄存器间接寻址,7,MCS-51的寻址方式,1.寄存器寻址可用于访问选定寄存器区的8个工作寄存器R0R7、A、B、DPTR、Cy等。MOVA,R12.立即寻址指令中的第二操作数为立即数。51指令中的立即数应冠以前缀#,且若立即数的首位为AF,前面还要加零。MOVA,#40HmovA,#0B2h,8,MCS-51的寻址方式,3.直接寻址用于访问内部RAM、SFR,是访问SFR的主要方法。访问低128字节RAM时:MOVA,40H访问SFR时:MOVA,90H也可写为MOVA,P14.寄存器间接寻址用于访问内部RAM和外部数据区,包括52系列微控制器的高128字节RAM,只有R0,R1可以作为间址寄存器。访问低128字节RAM时:MOVR0,#40HMOVA,R0访问高128字节RAM时:MOVR0,#90HMOVA,R05.基址寄存器加变址寄存器间接寻址用于访问程序存储器的一个单元,该单元的地址是基址寄存器(DPTR或PC)的内容与变址寄存器A的内容之和。MOVDPTR,#0400HMOVA,#05HMOVCA,A+DPTR,9,51指令系统及一般说明,分类数据传送类算数操作类逻辑运算类控制转移类位操作类,10,51指令系统及一般说明,指令介绍中符号的说明:Rn:当前工作寄存器区中R0R7Ri:当前工作寄存器区中的R0、R1Direct:直接地址#data:指令中的常数(8位或16位)Dptr:数据指针:间接寻址前缀(X):x中的内容(20h)(x):在间接寻址中,由间址寄存器寻址的单元中的内容(R0),若R0=20H,则(R0)表示(20H),11,3.1数据传送类,以累加器为目的操作数的指令以Rn为目的操作数的指令以直接地址为目的操作数的指令以寄存器间接地址为目的操作数的指令16位数据传送堆栈操作指令累加器与外部数据存储器传送指令查表指令字节交换指令半字节交换指令,12,3.1数据传送类,Mova,Rn;以累加器为目的MovRn,#0A0h;以Rn为目的操作数Mov40H,Ri;以直接地址为目的操作数MovRi,#0B0h;以寄存器间接地址为目的操作数Movdptr,#2000hPushpopdirect(sp)=60h,(a)=30h,(b)=70hPusha;(sp)+1=61h=sp(a)=61hPushb;(sp)+1=62h=sp(b)=62hPopb;(sp)=b(sp)-1=sp=61hPopa;(sp)=a(sp)-1=sp=60h,13,3.1数据传送类,A与外部数据存储器传送Movxa,dptrMovxa,RiMovxdptr,aMovxRi,a例:Movdptr,#1000hMova,#55hMovxdptr,a,14,3.1数据传送类,查表指令Movca,a+pc(单字节)若程序中这指令所在的地址为1000h,这是一条单字节指令。CPU执行此条指令时,pc=1001,假定此时a=30h。那么,程序的执行结果,是将程序存储器1031H中内容,读入a中。只能查该指令后面256单元,且表格只能为一段程序所用Movca,a+dptr若dptr=8100h,a=40h执行结果,将程序存储器地址为8140h中内容读入a。,15,3.1数据传送类,字节交换指令:将累加器内容与源操作数内容相互交换Xcha,RnXcha,40h(直接地址)Xcha,RiXcha,R7若a=55h;R7=66h,指令执行结果a=66h,R7=55h半字节交换:累加器与内部RAM低4位交换Xchda,RiXchda,R0若a=59h,R0=60h,(60h)=3eh,执行结果a=5eh,(60h)=39h,16,3.2算数操作类,加法指令带进位的加法指令增量指令十进制调整指令带进位的减法指令减一指令乘法指令除法指令*增量指令与减一指令不影响PSW中标志位,17,3.2算数操作类,18,3.2算数操作类,加法指令Adda,Rnadda,directadda,Riadda,#data将源操作数内容与A内容相加,结果存入A。如果位7有进位输出,则置1Cy位,否则清零;如果位3有进位输出,则置1Ac位,否则清零;如果位6有进位而位7没有进位,或者位7有进位而位6没有,则置位溢出标志位OV;否则对溢出标志位清零。,19,3.2算数操作类,例:(A)=53H,(R0)=FCH执行指令:ADDA,R0,20,3.2算数操作类,21,3.2算数操作类,带进位加法指令Addca,Rnaddca,directaddca,Riaddca,#data同时把加数、A、进位标志位Cy的内容相加,结果存入累加器A中。对标志位的影响同ADD。,22,3.2算数操作类,例:(A)=85H,(20H)=FFH,Cy=1执行指令:ADDCA,20H,23,3.2算数操作类,增量指令IncaincRnIncdirectincRiIncdptr对变量进行加1操作,不影响标志位,若原变量中内容为FFH则程序执行后变量变为00H。,24,3.2算数操作类,十进制调整DAa应用背景:(1)该指令执行前,一般有一条加法指令。(2)加法指令中的两个加数,应该是用压缩BCD码表示的十进制数,计算结果(和)存放在A中。(3)执行完DA指令后,A中存放的数是两个加数的十进制和,也使用压缩BCD码表示。若(A)=56h(R5)=67hADDA,R5DAA结果(A)=23;Cy=1,25,3.2算数操作类,带进位的减法指令SUBBA,RnSUBBA,directSUBBA,RiSUBBA,#data从累加器A中减去源操作数内容和进位标志,结果存入A。如果位7有借位,则置1Cy位,否则清零;如果位3有借位,则置1Ac位,否则清零;如果位6有借位而位7没有借位,或者位7有借位而位6没有,则置位溢出标志位OV;否则对溢出标志位清零。,26,3.2算数操作类,27,3.2算数操作类,减1指令DECADECRnDECdirectDECRi功能:指令中的变量减1,不影响标志位,若变量初始值为00H,则指令执行后变为FFH。MOV40H,#0FFHDEC40H执行结果(40H)=FEH,28,3.2算数操作类,乘法指令MULAB将A与B中的8位整数相乘,其16位积的低8位放在A中,高8位放在B中,如果积大于255,则置位OV,否则清零;Cy总是0。除法指令DIVABA除以B,商放在A中,余数放在B中。清Cy、OV。如果除数为0,则结果A、B中内容不定,置位OV。,29,3.3逻辑运算指令,清零与取反CLRCPL左移RLRLC右移RRRRC累加器半字节交换SWAP逻辑与、或、异或ANLORLXRL,30,3.3逻辑运算指令,清零与取反CLRA;A清零CPLA;按位取反左移RLA;A中内容左移一位,位7移入位0RLCA;A中内容及进位标志位Cy一起左移,位7移入Cy,Cy位移入位0。,31,3.3逻辑运算指令,右移RRA;A中内容右移一位,位0移入位7。RRCA;A中内容及进位标志位Cy一起右移,位0移入Cy,Cy位移入位7。累加器半字节交换SWAPA例如:MOVA,#0C5HSWAPA结果A=5CH,32,3.3逻辑运算指令,与、或、异或ANLORLXRLANLA,R0ORLA,R0XRL40H,#40H*运算结果存入第一操作数中,支持寄存器寻址、直接寻址、寄存器间接寻址和立即寻址方式。,33,3.4控制转移类指令,长跳转指令Ljmpaddr16相对跳转指令Sjmprel(双字节指令)间接跳转指令Jmpa+dptr,34,3.4控制转移类指令,条件转移指令:依据某种条件决定是否跳转,条件不满足,程序将顺序执行。jzrel;A为零则转移Jnzrel;A不为零则转移rel表示跳转范围(-127+128)字节比较不相等转移:比较前面两个操作数的大小,如果不相等,发生跳转。Cjnea,#data,relcjnea,direct,relcjneRn,#data,relcjneRi,#data,rel如果第1操作数小于第2操作数,则置位进位标志,否则清零,不影响任何一个操作数的内容。,35,3.4控制转移类指令,减一不为零转移指令djnzRn,reldjnzdirect,rel将源操作数减一不为零则转移。空操作指令nop只执行pc+1操作,cpu等待一个机器周期。,36,3.4控制转移类指令,调用子程序指令Lcalladdr16无条件调用位于指定地址的子程序。子程序返回指令ret中断子程序返回指令reti,37,3.5位操作指令,数据位传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年项目管理师高级实践技能进阶指南与题库
- 2025年政府公职人员职业素质提升课程及模拟题答案集
- 2025年机械设计工程师中级面试题集
- 2025年高级养老护理员技能证书考试练习题及答案
- 2025年注册验船师资格考试(B级船舶检验专业法律法规)综合试题及答案一
- 2025年配送计算试题及答案
- 国安公务员面试题及答案
- 英语游戏化教学培训课件
- 贵商银行面试题及答案
- 2025年行业协会法务面试模拟题集
- 《中国成人肥厚型心肌病诊断与治疗指南-2023》更新要点解读
- NB-T 11054-2023 防孤岛保护装置技术规范
- JTGT 5540-2018 公路隧道加固技术规范正式版
- 高一学生职业生涯规划课件
- 口服CCB类药品临床综合评价指标体系专家咨询调查表
- 第四节道亨slw2d架空送电线路评断面处理及定位设计系统部分操作说明
- 测振仪使用方法
- 表- 邻二氯苯的理化性质和危险特性表
- 工程项目全过程造价管理课件PPT超详细
- 成人手术后疼痛处理专家共识
- 读书分享-《教育的情调》
评论
0/150
提交评论