已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/18,第三章单片机指令系统,3.1寻址方式3.2指令系统,2020/5/18,在汇编语言中,用助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。,2020/5/18,指令执行过程,程序是按要求实现的指令有序集合,是串行执行的。事情要一步一步做,所以需要时钟通过PC指向程序地址,完成取指放到指令寄存器中指令寄存器的译码,知道要做什么按照要求完成任务PC指向下一条指令,2020/5/18,2020/5/18,51单片机指令系统是一个具有255种代码的集合一条汇编指令中最多包含4段:,2020/5/18,标号:给程序指令起个名字操作码表明做什么操作数源操作数,目的操作数;注释说明程序作用,参数定义入口参数,返回值所在,格式,2020/5/18,源操作数:“数”从哪里来目的操作数:“数”放到哪里,找数的方式就是寻址方式,2020/5/18,3.1寻址方式(共有7种),立即寻址ImmediateConstants直接寻址DirectAddressing寄存器寻址RegisterInstructions寄存器间接寻址IndirectAddressing基址变址间接寻址IndexedAddressing相对寻址RelativeOffsetAddressing位寻址BitsAddresing,2020/5/18,例:MOVR0,#34HMOVDPTR,#2345HMOVA,40HMOVB,P2;特殊功能寄存器只能用直接寻址访问MOVA,R6MOVA,R0;间接寻址只能用R0、R1或DPTR做地址指针MOVXA,DPTRMOVCA,A+PCMOVCA,A+DPTR;适用于访问程序存储器中的数据表格SJMPLOOP1JCLOOP2;相对寻址只出现在相对转移指令中SETB10H;内部SRAM22H中的第0位CLRP1.1;位寻址针对20H2FH的位定义区和SFR位操作,2020/5/18,例:MOVDPTR,#TABLEMOVCA,A+DPTRTABLE:DB3FH,06H,5BH,4FH;7段共阴显示代码1000HMOVA,#10H1002HMOVCA,A+PC1013HDB03H1014HDB08H,2020/5/18,可位寻址的SFR位地址,2020/5/18,说明:,只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。,1.一条指令中不能同时出现两个工作寄存器:非法指令:MOVR1,R2MOVR2,R0,2.间址寄存器只能使用R0、R1。非法指令:MOVA,R2,3.SFR区只能直接寻址,不能用寄存器间接寻址。非法指令:MOVR0,#80HMOVA,R0;(52系列的,认为是高128B的间接寻址),4.片外数据存储器不能直接寻址,且只能通过A累加器传递数据。非法指令:MOVXA,2000HMOVX2100H,2000H,2020/5/18,(1)对程序存储器(内、外):只能变址寻址MOVC(2)对内部数据存储器:MOV(3)对外部数据存储器:只能寄存器间址MOVX,2020/5/18,3.2指令系统介绍(共5类),数据传送DataTransfers29条算术运算ArithmeticInstructions24条逻辑运算LogicalInstructions24条位操作BooleanInstructions17条控制转移JumpInstructions17条共111条,2020/5/18,回忆:51单片机的主要寄存器,(1)算术逻辑单元ALU(2)累加器ACC,程序中有时可以简写为A(3)辅助寄存器B,乘除指令用到(4)程序计数器PC,“不”能用程序直接访问(5)数据指针DPTR,有的单片机有两个(6)堆栈指针SP,复位时内容是07H,一定要记住。(7)程序状态寄存器PSW记住哪些指令影响标志位,2020/5/18,复位时00,Cy(PSW.7)进位标志。有进位或借位时置1AC(PSW.6)辅助进位标志。低4位有进位或借位时F0(PSW.5)用户用位标志RS1(PSW.4)、RS0(PSW.3)选择通用寄存器组R0R7所在内部RAM中的位置OV(PSW.2)溢出标志。F1(PSW.1)保留。51未用,52为用户标志位P(PSW.0)奇偶标志。ACC中1的个数为奇数时置1,208=0D0HPSW的地址,2020/5/18,影响标志位的指令(X表示有影响,o表示清零,1表示置一),2020/5/18,Rn当前工作寄存器中的某一个,即R0R7;RiR0或者R1Direct单片机内部RAM低128字节(00h7fh)中的某个字节地址,或者是某个专用寄存器的名字;#data8位(1字节)立即数#data1616位(2字节)的立即数Addr1616位目的地址,在LJMP和LCALL的指令中采用Addr1111位目的地址,只在AJMP和ACALL指令中采用Rel相对转移指令中的偏移量。DPTR数据指针(由DPH和DPL构成)Bit内部RAM(包括专用寄存器)中可寻址位的地址或名字A累加器ACCBB寄存器间接寻址标志/加在位地址前,表示对该位状态取反(X)某寄存器或某单元的内容(X)由X间接寻址的单元中的内容,指令中符号的意义说明,2020/5/18,一、数据传送类指令,格式:MOV目的,源传送到A累加器的指令MOVA,Rn;n=0,1,.7MOVA,direct;direct是地址MOVA,Ri;i=0,1MOVA,#data;#data是立即数MOVA,B;,2020/5/18,传送到Rn的指令MOVRn,AMOVRn,directMOVRn,#data传送到内部RAM或特殊功能寄存器MOVdirect,AMOVdirect,RnMOVdirect,direct;地址到地址MOVdirect,RiMOVdirect,#data(高128只能用间接寻址),2020/5/18,传送到Ri指定的单元MOVRi,directMOVRi,A传送到DPTR寄存器MOVDPTR,#data16传送到外部RAM中(配合WR,RD)MOVXA,DPTRMOVXDPTR,AMOVXA,RiMOVXRi,A(先送高位地址到P2中),2020/5/18,堆栈操作指令MOVSP,#data;设堆栈PUSHdirect;POPdirect;PUSHA;POPA;PUSHPSW(ACALL、LCALL、中断要硬件执行PC入栈,先低8位,后高8位。)代码区(程序区)操作指令MOVCA,A+DPTRMOVCA,A+PC(查表用),错!,PUSHACCPOPACC,SPSP+1;(SP)(direct),(SP)(direct);SPSP-1,MCS-51提供一个向上升的堆栈,因此SP设置初值时要充分考虑堆栈的深度,要留出适当的单元空间,满足堆栈的使用。,2020/5/18,字节交换指令XCHA,Rn;ARnXCHA,Ri;A(Ri)XCHA,direct;A(direct)(全字节交换)SWAPA;半字节交换(高4位与低4位交换),2020/5/18,二、算术运算指令,(一)加法指令不带进位加指令ADDA,Rn;A=A+RnADDA,direct;A=A+(direct)ADDA,Ri;A=A+(Ri)ADDA,#data;A=A+data带进位加指令ADDCA,Rn;A=A+Rn+CyADDCA,direct;A=A+(direct)+CyADDCA,Ri;A=A+(Ri)+CyADDCA,#data;A=A+data+Cy,2020/5/18,增量(增1)指令INCA;A=A+1INCRn;Rn=Rn+1INCdirect;(direct)=(direct)+1(地址中的数增一)INCRi;(Ri)=(Ri)+1INCDPTR;DPTR=DPTR+1十进制调整指令DAA(在BCD码运算中,要进行调整),2020/5/18,(二)减法指令带借位减法指令没有不带借位C减法指令SUBBA,Rn;A=A-Rn-CySUBBA,direct;A=A-(direct)-CySUBBA,Ri;A=A-(Ri)-CySUBBA,#data;A=A-data-Cy(对BCD码无调整指令)减1指令DECA;A=A-1DECRn;Rn=Rn-1DECdirect;(direct)=(direct)-1DECRi;(Ri)=(Ri)-1,2020/5/18,(三)乘法指令,MULAB;AXB(高位在B中,低位在A中clearCy结果小于等于255OV=0,大于则置1),(四)除法指令,DIVAB;A/B(整数在A中,余数在B中,clearCyA=0,清零CPLA;将A中的数按位取反RLA;A中的数左移一位(不带Cy)RRA;A中的数右移一位(不带Cy)(小循环)RLCA;A中的数带Cy左移一位RRCA;A中的数带Cy右移一位(大循环),2020/5/18,逻辑与指令(按位与)ANLA,Rn;A=A(direct)=(direct)A=A或RnORLA,direct;A=A或(direct)ORLA,Ri;A=A或RiORLA,#data;A=A或dataORLdirect,A;(direct)=direct或AORLdirect,#data;(direct)=(direct)或data,2020/5/18,逻辑异或指令(按位异或)XRLA,Rn;A=A异或RnXRLA,direct;A=A异或(direct)XRLA,Ri;A=A异或RiXRLA,#data;A=A异或dataXRLdirect,A;(diect)=(direct)异或AXRLdirect,#data;(diect)=(direct)异或data,2020/5/18,四、控制转移指令,(一)无条件转移SJMPrel;在-128+127内跳转SJMP$;原地转圈AJMPaddr11;在2K地址内跳转LJMPaddr16;在64K地址内跳转,2020/5/18,JZrel;在-128+127内跳转(A=0,跳转)JNZrel;在-128+127内跳转(A!=0,跳转),(二)有条件转移,对累加器A的判断转移,2020/5/18,比较转移(不相等跳转)CJNEA,direct,rel;CJNEA,#data,rel;CJNERn,#data,rel;CJNERi,#data,rel;(跳转范围-128+127,相对寻址)减1不为0跳转DJNZRn,rel;DJNZdirect,rel;(跳转范围-128+127,相对寻址),2020/5/18,(三)调用子程序ACALLrel(addr11);在2K内LCALLrel(addr16);在64K内,2020/5/18,(四)调用子程序返回指令RET;一般调用返回(子程序)RETI;硬件中断返回(中断程序),(五)空操作指令NOP;不做任何操作,延时一个机器周期,2020/5/18,五、位操作指令,2020/5/18,片内RAM中的位寻址区,2020/5/18,特殊功能寄存器位地址表,2020/5/18,2020/5/18,位传送指令MOVC,bit;C是进位位(Cy)MOVbit,C;C是进位位(Cy)(bit可以是I/O口,也可以是bit变量)位变量修改指令CLRC;Cy=0CLRbit;bit=0CPLC;C取反CPLbit;bit取反SETBC;C=1;SETBbit;bit=1;(bit可以是I/O口,也可以是bit变量),2020/5/18,位变量逻辑与指令ANLC,bit;C=C与bitANLC,/bit;C=C与/bit位变量逻辑或指令ORLC,bit;C=C或bitORLC,/bit;C=C或/bit位变量条件转移指令JCrel;C=1跳转JNCrel;C=0跳转JBbit,rel;bit=1跳转JNBbit,rel;bit=0跳转JBCbit,rel;bit=1跳转,并使bit=0,2020/5/18,综合举例:1、内部RAM:(30H)=40H;(40H)=10H;P1口上数据为CAH。MOVR0,#30HMOVA,R0MOVR1,AMOVB,R1MOVR1,P1MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源经理年终绩效考核和薪酬计划
- 某公司拓展方案策划书3
- 银行现金调研报告
- 量子计算技术研发协议(标准版)
- 智慧养老线下服务方案设计
- 网络侵权与法律保护演讲稿
- 2025年中国复合式破碎机行业市场调查及投资前景预测报告
- 2025年中国大气压力测量变送器行业市场前景预测及投资价值评估分析报告
- 2025年中国应急救援装备行业研究报告
- 2025年中国房地产园林绿化行业市场评估研究报告
- 原材料验收知识培训课件
- 2025-2030中国精益管理咨询市场分析与战略布局研究报告
- 医美护士专业知识培训课件
- 酸碱泄漏应急处置课件
- 2025年黑龙江省省级机关遴选考试笔试试题(附答案)
- 宜宾市中石油2025秋招面试半结构化模拟题及答案数智化与信息工程岗
- 压力容器考试试题大全及答案
- 仓储安全消防培训课件
- SHE管理体系培训课件
- 2025-2026学年度导游资格考试试题预测试卷含答案详解【满分必刷】
- DB41-T 2930-2025 中药材产地趁鲜切制加工企业建设指南
评论
0/150
提交评论