




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用,第3章MCS-51单片机指令系统,3.3MCS-51的指令集,3.3.2算术运算类指令ADD/ADDC/INC/DAA/SUBB/DEC/MUL/DIV3.3.3逻辑运算类指令CLR/CPL/ANL/ORL/XRL/RL/RLC/RR/RRC3.3.4控制转移指令AJMP/LJMP/SJMP/JMP/JZ/JNZ/CJNE/DJNZACALL/LCALL/RET/RETI/NOP3.3.5位操作类指令MOV/CLR/SETB/ANL/ORL/CPLJC/JNC/JB/JNB/JBC,3.3.2算术运算类指令,1.加法指令ADD/ADDC/INC/DAA2.减法指令SUBB/DEC3.乘法指令MUL4.除法指令DIV,1.加法指令,(1)不带进位的加法指令ADD(2)带进位加法指令ADDC(3)增量指令INC(4)十进制调整指令DAA,(1)不带进位的加法指令ADD,格式ADDA,data;(A)(A)+#dataADDA,direct;(A)(A)+(direct)ADDA,Ri;(A)(A)+(Ri)ADDA,Rn;(A)(A)+(Rn)对标志位的影响Cy:最高位D7有进位,Cy=1,否则Cy=0AC:D3有进位,AC=1,否则AC=0OV:D6和D7位只有一个有进位,则OV=1,否则OV=0P:A中有奇数个“1”,P=1,否则P=0,无符号数:CY表示进位、溢出(不考虑OV)有符号数:OV表示溢出(不考虑CY),例,无符号数加法:结果?有符号数加法:结果?,结果溢出?,正确,溢出不正确,(2)带进位加法指令ADDC,格式ADDCA,Rn;(A)(A)+(Rn)+(C)ADDCA,direct;(A)(A)+(direct)+(C)ADDCA,Ri;(A)(A)+(Ri)+(C)ADDCA,data;(A)(A)+data+(C)对标志位的影响与ADD指令相同,(3)增量指令INC,格式INCA;(A)(A)+1INCRn;(Rn)(Rn)+1INCdirect;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;(DPTR)(DPTR)+1先进行DPL+1;产生溢出时,就对DPH+1对标志位的影响除“INCA”指令影响P标志外,其余指令均不影响PSW标志,(4)十进制调整指令DAA,格式:DAA功能对A参与的BCD码加法运算结果进行十进制调整调整后,A中的内容为2位压缩型BCD码特点只能跟在加法指令(ADD或ADDC)之后不能对减法指令的结果进行调整不影响溢出标志位OV,例1,MOVA,36HADDA,45HDAA,2.减法指令,(1)带进位的减法指令SUBB(2)减1指令DEC,(1)带进位的减法指令SUBB,格式SUBBA,Rn;(A)(A)-(Rn)-(C)SUBBA,direct;(A)(A)-(direct)-(C)SUBBA,Ri;(A)(A)-(Ri)-(C)SUBBA,data;(A)(A)-data-(C)对标志位的影响与ADD指令相同,只是进位在减法指令中为借位,进行不带借位的减法操作,必须先将Cy清“0”,(2)减1指令DEC,格式DECA;(A)(A)-1DECRn;(Rn)(Rn)-1DECdirect;(direct)(direct)-1DECRi;(Ri)(Ri)-1对标志位的影响除“DECA”指令影响P标志外,其余指令均不影响PSW标志,3.乘法指令MUL,格式MULAB;BABA无符号数相乘结果乘积0FFH,则OV=1,否则OV=0CY=0,4.除法指令DIV,格式DIVAB无符号数相除结果OV=0;CY=0若原来B=0,执行后A与B的内容不定,OV=1,1、若:(A)=3BH,(PSW)=0,执行指令ADDA,#3BH结果:(A)=_,(PSW)=_。2、若:(A)=87H,(R1)=0F5H,(PSW)=0执行:ADDA,R1结果:(A)=_,(PSW)=_。3、执行:MOVA,#3FHDAA结果(A)=_。4、执行:MOVA,#3FHADDA,#12HDAA结果(A)=_。,练习,练习1若:(A)=3BH,(PSW)=0,执行指令ADDA,#3BH结果:(A)=_,(PSW)=_,00111011+0011101101110110,76H,41H,无符号数加法:结果?有符号数加法:结果?,正确,无溢出,练习2若:(A)=87H,(R1)=0F5H,(PSW)=0执行:ADDA,R1;A(A)+(R1)结果:(A)=_,(PSW)=_,10000111+1111010101111100,7CH,85H,无符号数加法:结果?有符号数加法:结果?,正确(进位有效),溢出不正确,练习3执行MOVA,#3FHDAA结果(A)=_练习4执行MOVA,#3FHADDA,#12HDAA结果(A)=_,45H,63H,BCD码参与运算进行加法调整得到两位压缩BCD码,57H,81H,;调整前,没进行加法运算,;有非压缩BCD数参与加法运算,3.3.3逻辑运算类指令,1.简单逻辑操作指令CLRA/CPLA2.逻辑与指令ANL3.逻辑或指令ORL4.逻辑异或指令XRL5.循环移位指令RLA/RLCARRA/RRCA,1.简单逻辑操作指令CLRA/CPLA,格式CLRA;对累加器A清“0”CPLA;对累加器A按位取反不影响CY,AC,OV等标志例若(A)=10101010B执行:CPLA结果:(A)=01010101B,2.逻辑与指令ANL,格式ANLA,data;(A)(A)#dataANLA,Rn;(A)(A)(Rn)ANLA,direct;(A)(A)(direct)ANLA,Ri;(A)(A)(Ri)ANLdirect,data;(direct)(direct)#dataANLdirect,A;(direct)(direct)A功能两个操作数按位逻辑与,结果送回目的操作数寄存器不是A或PSW时,不影响标志,否则影响标志位,3.逻辑或指令ORL,格式ORLA,data;(A)(A)#dataORLA,Rn;(A)(A)(Rn)ORLA,direct;(A)(A)(direct)ORLA,Ri;(A)(A)(Ri)ORLdirect,data;(direct)(direct)#dataORLdirect,A;(direct)(direct)A功能两个操作数按位逻辑或,结果送回目的操作数寄存器不是A或PSW时,不影响标志,否则影响标志位,4.逻辑异或指令XRL,格式XRLA,dataXRLA,RnXRLA,directXRLA,RiXRLdirect,dataXRLdirect,A功能两个操作数的内容按位逻辑异或操作,结果送回目的操作数寄存器不是A或PSW时,不影响标志,否则影响标志位,逻辑运算指令的常见用法,逻辑与ANL清0或者保留某些位逻辑或ORL置1或者保留某些位逻辑异或XRL取反或者保留某些位,将A的D4、D3清0ANLA,#0E7H将A的D1、D0置1ORLA,#03H将A的D7、D6取反XRLA,#0C0H,将A的D4、D3清0ANLA,#0E7H将A的D1、D0置1ORLA,#03H将A的D7、D6取反XRLA,#0C0H,5.循环移位指令RLA/RLCA/RRA/RRCA,仅带进位标志位的移位指令影响CY和P标志仅移1位,RLA;循环左移,1001101,1,RLCA;带进位循环左移,C,0,1001101,1,5.循环移位指令RLA/RLCA/RRA/RRCA,RRA;循环右移,1001101,RRCA;带进位循环右移,C,1,0,1001101,1,1、判断指令对错1)PUSHA;()2)ANL30H,#03H;()3)CLRP1;()3)XRLR0,#03H;()5)RLCB;()6)CPL20H;()2、写出完成如下要求的指令,但不得改变未涉及位的内容:1)使ACC.2、ACC.3置“1”;2)清“0”累加器高4位;3)清“0”ACC.3、ACC.4、ACC.5、ACC.6。,练习,1、判断指令对错1)PUSHA;()2)ANL30H,#03H;()3)CLRP1;()3)XRLR0,#03H;()5)RLCB;()6)CPL20H;()2、写出完成如下要求的指令,但不得改变未涉及位的内容:1)使ACC.2、ACC.3置“1”;2)清“0”累加器高4位;3)清“0”ACC.3、ACC.4、ACC.5、ACC.6。,练习,例用9位循环指令实现多字节移位编程将寄存器R6,R5中的双字节数X左移一位。,CLRCMOVA,R5RLCAMOVR5,AMOVA,R6RLCAMOVR6,A,A,A,C,R5.7,R5,R6.7,R6,一般不影响标志位,3.3.4控制转移指令,1.无条件转移指令AJMP/LJMP/SJMP/JMP2.条件转移指令JZ/JNZ3.比较转移指令CJNE4.减1不为0转移指令DJNZ5.调用和返回指令ACALL/LCALL/RET/RETI6.空操作指令NOP,“特殊”,1.无条件转移指令AJMP/LJMP/SJMP/JMP,(1)绝对转移指令AJMPaddr11;(PC)(PC)+2;(PC100)addr11(2)长转移指令LJMPaddr16;(PC)addr16(3)短转移指令SJMPrel;(PC)(PC)+2;(PC)(PC)+rel(4)间接转移指令JMPA+DPTR;(PC)(A)+(DPTR),范围:2kB,范围:64kB,范围:-128+127,利用转移指令表,实现程序分支转移,无符号数,例地址源代码注释-|-|-0100H|SJMPNEWADD|;(PC)(PC)+2;(PC)(PC)+rel0102H|0123H|NEWADD:|;标号NEWADD所指位置,2.条件转移指令JZ/JNZ,(1)JZrel;若(A)=0,则(PC)(PC)+2+rel;,否则(PC)(PC)+2(2)JNZrel;若(A)0,则(PC)(PC)+2+rel;,否则(PC)(PC)+2目标地址以下一条指令起始地址为中心的256个字节范围之内(-128+127),3.比较转移指令CJNE,格式CJNEA,direct,relCJNEA,data,relCJNERn,data,relCJNERi,data,rel功能比较前两个操作数的大小不相等,程序转移:(PC)(PC)+3+rel相等,程序继续执行:(PC)(PC)+3若:第一个操作数小于第二个操作数则,Cy=1;否则,Cy=0指令不影响操作数内容,4.减1不为0转移指令DJNZ,格式DJNZRn,rel;(PC)(PC)+2,(Rn)(Rn)-1;若(Rn)0,(PC)(PC)+rel;若(Rn)=0,(PC)(PC)DJNZdirect,rel;(PC)(PC)+3,(direct)(direct)-1;若(direct)0,(PC)(PC)+rel;若(direct)=0,(PC)(PC)功能循环程序中,控制循环次数,练习1MOVA,#0HDELAY:MOVR6,#4HYES:INCADJNZR6,YES此段程序执行后,(A)=_H,04,练习2MOVA,#0HDELAY:MOVR6,#4HYES:INCAMOVR6,#2HDJNZR6,YES此段程序执行后,(A)=_H,04,5.调用和返回指令ACALL/LCALL/RET/RETI,子程序具有一定功能的程序编写成子程序减少工作量、缩短程序长度通过主程序调用来使用(1)调用指令ACALL/LCALL(2)返回指令RET/RETI,(1)调用指令ACALL/LCALL,(1)短调用(范围:_)ACALLaddr11;(PC)(PC)+2;SPSP+1,(SP)(PC70);SPSP+1,(SP)(PC158);(PC100)addr11(2)长调用(范围:_)LCALLaddr16;(PC)(PC)+3;SPSP+1,(SP)(PC70);SPSP+1,(SP)(PC158);(PC)addr16,2kB,64kB,(2)返回指令RET/RETI,子程序返回指令RET恢复断点将调用子程序时压入堆栈的下一条指令的首地址(即:程序的断点)取出送入PC,使返回主程序继续执行中断返回指令RETI功能与RET指令相似不同:还要清除中断状态标志,6.空操作指令NOP,格式NOP;(PC)(PC)+1功能CPU不产生任何控制操作将PC的内容加1,执行下一条指令耗费1个机器周期常用于较短时间的延时,3.3.5位操作类指令,1.位传送MOV2.位状态置位CLR/SETB3.位逻辑运算ANL/ORL/CPL4.位变量条件转移指令JC/JNC/JB/JNB/JBC,可位寻址区回顾:片内RAM,工作寄存器区:字节地址:00H1FH数据缓冲区/堆栈区:字节地址:00H7FH一般使用30H7FH位寻址区:字节地址:20H2FH位地址为:00H7FH,可位寻址区回顾:特殊功能寄存器SFR,占用字节地址:80HFFH专用寄存器:A、B、PSW、DPTR、SPI/O接口寄存器:P0、P1、P2、P3、SBUF、TMOD、TCON、SCON位寻址寄存器:其字节地址可被8整除,可位寻址区回顾:位地址表达形式,(1)直接地址方式如:0A8H(2)字节地址加位序号如:0D0H.5(3)点操作符方式如:PSW.1(4)位名称方式如:TR0、TR1(5)伪指令定义方式如:PO1BITP0.1;允许PO1代替P0.1,1.位传送MOV,格式MOVC,bit;(Cy)(bit)MOVbit,C;(bit)(Cy)例若(CY)=0执行指令MOVP0.0,CMOV0D5H,C执行后:P0.0=0,PSW.5=0,2.位状态置位CLR/SETB,(1)位清零CLRC;(Cy)0CLRbit;(bit)0(2)位置位SETBC;(Cy)1SETBbit;(bit)1不影响其它标志,3.位逻辑运算ANL/ORL/CPL,(1)位逻辑“与”ANLC,/bit;(Cy)(Cy)(/bit)ANLC,bit;(Cy)(Cy)(bit)(2)位逻辑“或”ORLC,bit;(Cy)(Cy)(bit)ORLC,/bit;(Cy)(Cy)(/bit)(3)位取反CPLC;(Cy)(/Cy)CPLbit;(Cy)(/bit),4.位变量条件转移指令JC/JNC/JB/JNB/JBC,(1)判Cy转移JCrel;若(Cy)=1,则PC(PC)+2+rel;否则,顺序执行JNCrel;若(Cy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程维护巡检方案模板(3篇)
- 安全生产达标培训总结课件
- 2025商业大楼外墙清洁服务合同
- 工程人员上门推销方案(3篇)
- 2025体育赛事活动人员合同范本
- 城市地下综合管廊2025年运营风险与区域社会稳定综合评估报告
- 2025农业种植农产品销售合同
- 2025年精神心理健康医疗服务市场供需关系优化与发展需求洞察报告
- 为什么说利用AI+数智应用提供“解决方案式”服务是科技服务机构的制胜关键
- 工程公司激励方案(3篇)
- 起重机械定期检查与维护方案
- 2025年新《公司法》知识竞赛题库(附含答案)
- 动物样品采集培训课件
- 八年级心理健康体验式教学计划
- 二手房资金监管协议书
- 甘肃省会宁县2025年上半年公开招聘辅警试题含答案分析
- 2025年太阳能海水淡化项目经济效益评估报告
- 2025年机关事业单位工人招聘《机动车驾驶员》技师考试题库与答案
- 2025年物资保管岗位招聘面试实战指南及模拟题解析
- 2025江苏南京农业大学新校区建设指挥部、基本建设处人员招聘10人考试模拟试题及答案解析
- 支教面试课件内容
评论
0/150
提交评论