版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章MCS-51单片机的指令系统
3.1指令编码格式及常用符号3.2寻址方式3.3数据传送类指令
3.4算术运算类指令
3.5逻辑运算和移位类指令3.6子程序调用与控制转移类指令
3.7位操作类指令
MCS—51单片机共有111条指令。其特点为:(1)指令执行时间短。其中1个机器周期指令64条,2个机器周期指令45条,4个机器周期指令2条(乘、除法指令)。(2)指令字节少。其中单字节指令49条,双字节指令45条,三字节指令17条。(3)位操作指令丰富。(4)可直接用传送指令实现端口的输入/输出操作。3.1指令编码格式及常用符号
3.1.1指令的格式
[标号:]操作码[目的操作数][,源操作数];[注释]例如:L1:MOVA,20H;(20H)→A3.1.2指令的分类
1.按指令所占存储器字节数分:(1)单字节指令(49条);(2)双字节指令(46条);(3)三字节指令(16条)。2.按指令执行周期数分:(1)单周期指令(64条);(2)双周期指令(45条);(3)四周期指令(2条,乘法指令和除法指令)。3.按指令功能分:(1)数据传送指令(28条);(2)算术运算指令(24条);(3)逻辑运算指令(25条);(4)控制转移类指令(17条);(5)位操作指令(17条)。3.1.3常用符号
Rn(n=0~7)——当前选中的工作寄存器组中的寄存器R0~R7之一;Ri(i=0,1)——当前选中的工作寄存器组中的寄存器R0或R1;@——间接寻址方式中表示间址寄存器的符号;#data——8位立即数;#datal6——16位立即数;direct——8位片内RAM单元(包括SFR)的直接地址;addrll——11位目的地址,该地址在与下一条指令地址相同的2KB的ROM空间内。add16——16位目的地址,该地址在64KB的ROM空间内。rel——补码形式表示的8位地址偏移量。以下一条指令第一字节地址为基值。其值在-128~+127范围内;bit——片内RAM或SFR的直接寻址位地址;C——最高进位标志位或布尔处理器的累加器;(X)——表示地址单元或寄存器中的内容;((X))——表示以X单元或寄存器中的内容为地址间接寻址单元的内容;→——表示传送给;↔
——表示交换;$——表示当前指令的地址;/——表示取反;3.2寻址方式
3.2.1立即寻址立即寻址就是指令中直接给出操作数的寻址方式。指令中直接给出的这个操作数称为立即数,在指令格式中,立即数前面有“#”标记。立即数可以是8位,也可以是16位。例如:MOVA,#50H;#50H→A3.2.2直接寻址
直接寻址就是指令中给出的是存储单元的地址,以这个地址单元中的内容作为操作数的寻址方式。例如:MOVA,50H;(50H)→A直接寻址方式的寻址范围只限于单片机内部数据存储器中地址为00H~7FH的128个存储单元以及21个特殊功能寄存器。3.2.3寄存器寻址寄存器寻址就是指令中给出的是寄存器名,以这个寄存器中的内容作为操作数的寻址方式。寄存器寻址方式的寻址范围是当前工作寄存器组的8个单元R0~R7,以及少数特殊功能寄存器如A、B和DPTR。例如:MOVA,R0;(R0)→A3.2.4寄存器间接寻址寄存器间接寻址就是指令中给出的是寄存器名,以寄存器中的内容作为地址,以地址单元中的内容作为操作数的寻址方式。例如:MOVA;((R0))→A寄存器间接寻址方式的寻址范围包括片内和片外数据存储器。3.2.5变址寻址变址寻址就是以PC或DPTR中的内容作为基址,以累加器A中的内容作为变址,两者相加形成和地址,再以该地址中的内容作为操作数的寻址方式。例如:MOVCA
;((A)+(DPTR))→A变址寻址只能对程序存储器中的数据作寻址操作,常用于访问程序存储器中的常数表。3.2.6相对寻址相对寻址就是以程序计数器PC的当前值(该指令执行后的PC值,即下一条指令的地址)为基址,加上指令给出的相对偏移量rel,形成新的PC值的寻址方式。例如:2000H:SJMP08H
;(PC)+2+08H→PC3.2.7位寻址位寻址就是对位地址中的内容做位操作的寻址方式。例如:CLR00H;0→00H3.3数据传送类指令
3.3.1以累加器A为目的操作数的指令
汇编语言指令指令功能MOVA,RnMOVA,directMOVAMOVA,#data(Rn)→
A (direct)→
A((Ri))→
A#data→A3.3.2以寄存器Rn为目的操作数的指令汇编语言指令指令功能MOVRn,A MOVRn,directMOVRn,#data(A)→
Rn (direct)→
Rn #data→Rn 3.3.3以直接地址direct为目的操作数的指令
汇编语言指令指令功能MOVdirect,A MOVdirect,Rn MOVdirect,directMOVdirectMOVdirect,#data(A)→
direct(Rn)→
direct (direct)→
direct((Ri))→
direct #data→direct3.3.4以间接地址Ri为目的操作数的指令
汇编语言指令指令功能MOV@Ri,A MOV@Ri,directMOV@Ri,#data (A)→(Ri)(direct)→(Ri)
#data→(Ri)3.3.5以DPTR为目的操作数的指令
汇编语言指令指令功能MOVDPTR,#data16#data16→DPTR3.3.6访问外部RAM的指令
汇编语言指令指令功能MOVXAMOVXA MOVX@DPTR,AMOVX@Ri ,A ((DPTR))→
A((Ri))→
A(A)→(DPTR)(A)→((Ri))3.3.7读ROM指令
汇编语言指令指令功能MOVCAMOVCA(PC)+1→PC((A)+(PC))→
A((A)+(DPTR))→
A3.3.8数据交换指令
汇编语言指令指令功能XCHA,Rn XCHA,directXCHAXCHDA(A)←→(Rn)(A)←→(direct)(A)←→((Ri))(A)3~0
←→((Ri))3~03.3.9堆栈操作指令
汇编语言指令指令功能PUSHdirectPOPdirect(SP)+1→SP(direct)→(SP)((SP))→
direct(SP)-1→SP3.4算术运算类指令
3.4.1加法指令
(1)不带进位的加法指令汇编语言指令指令功能ADDA,RnADDA,directADDAADDA,#data(A)+(Rn)→
A (A)+(direct)→
A(A)+((Ri))→
A(A)+#data→A(2)带进位的加法指令汇编语言指令指令功能ADDCA,RnADDCA,directADDCAADDCA,#data(A)+(Rn)+(Cy)→
A(A)+(direct)+(Cy)→
A(A)+((Ri))+(Cy)→
A(A)+#data+(Cy)→
A(3)增量指令汇编语言指令指令功能INCA INCRnINCdirectINC@RiINCDPTR(A)+1→A(Rn)+1→Rn(direct)+1→direct((Ri))+1→(Ri)(DPTR)+1→DPTR(4)十进制调整指令汇编语言指令指令功能DAA 对A中的结果进行十进制调整3.4.2减法指令(1)带借位的减法指令汇编语言指令指令功能SUBBA,RnSUBBA,directSUBBASUBBA,#data(A)-(Cy)-(Rn)→
A(A)-(Cy)-(direct)→
A(A)-(Cy)-((Ri))→
A(A)-(Cy)-#data→A(2)减量指令汇编语言指令指令功能DECA DECRnDECdirectDEC@Ri(A)-1→A(Rn)-1→Rn(direct)-1→direct((Ri))-1→
(Ri)3.4.3乘法指令
汇编语言指令指令功能MULAB (A)×(B)→(B)(A)3.4.4除法指令
汇编语言指令指令功能DIVAB (A)/(B)3.5逻辑运算和移位类指令
3.5.1逻辑与指令
汇编语言指令指令功能ANLA,Rn ANLA,direct ANLA ANLA,#data ANLdirect,A ANLdirect,#data(A)∧(Rn)→
A(A)∧(direct)→
A(A)∧((Ri))→
A (A)∧#data→A (direct)∧(A)→
direct(direct)∧#data→direct3.5.2逻辑或指令
汇编语言指令指令功能ORLA,Rn ORLA,direct ORLA ORLA,#data ORLdirect,A ORLdirect,#data(A)∨(Rn)→
A (A)∨(direct)→
A (A)∨((Ri))→
A (A)∨#data→A (direct)∨(A)→
direct(direct)∨#data→direct3.5.3逻辑异或指令
汇编语言指令指令功能XRLA,Rn XRLA,direct XRLA XRLA,#data XRLdirect,A XRLdirect,#data(A)∨(Rn)→
A (A)∨(direct)→
A (A)∨((Ri))→
A (A)∨#data→A (direct)∨(A)→
direct(direct)∨#data→direct3.5.4清零和取反指令
汇编语言指令指令功能CLRACPLA0→A (A)→
A3.5.5移位指令
汇编语言指令指令功能RLARRARLCARRCASWAPA(A)6~0
→A7~1,(A)7
→A0
(A)7~1
→A6~0,(A)0
→A7
(A)6~0
→A7~1,(A)7
→Cy,(Cy)→
A0(A)7~1
→A6~0,(A)0
→Cy,(Cy)→
A7(A)7~4
←→(A)3~0
3.6子程序调用与控制转移类指令
3.6.1子程序调用与返回指令
汇编语言指令指令功能ACALLaddr11LCALLaddr16RETRETI(PC)+2→PC(SP)+1→SP(PC低8位)→(SP)(SP)+1→SP(PC高8位)→(SP)
addr11→PC10~0(PC)+3→PC(SP)+1→SP(PC低8位)→(SP)(SP)+1→SP(PC高8位)→(SP)
addr16→PC((SP))→
PC高8位(SP)-1→SP((SP))→
PC低8位(SP)-1→SP((SP))→
PC高8位(SP)-1→SP((SP))→
PC低8位(SP)-1→SP3.6.2无条件转移指令
汇编语言指令指令功能AJMPaddr11LJMPaddr16SJMPrelJMP@A+DPTR(PC)+2→PCaddr11→PC10~0(PC)+3→PCaddr16→PC(PC)+2+rel→PC(A)+(DPTR)→
PC3.6.3条件转移指令(1)累加器判0转移指令汇编语言指令指令功能JZrel JNZrel(A)=00H,(PC)+2+rel→PC(A)≠00H,(PC)+2→PC(A)≠00H,(PC)+2+rel→PC(A)=00H,(PC)+2→PC(2)两数比较不等转移指令汇编语言指令指令功能CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel(A)=#data,(PC)+3→PC,0→Cy(A)>#data,(PC)+3+rel→PC,0→Cy(A)<#data,(PC)+3+rel→PC,1→Cy(A)=(direct),(PC)+3→PC,0→Cy(A)>(direct),(PC)+3+rel→PC,0→Cy(A)<(direct),(PC)+3+rel→PC,1→Cy(Rn)=#data,(PC)+3→PC,0→Cy(Rn)>#data,(PC)+3+rel→PC,0→Cy(Rn)<#data,(PC)+3+rel→PC,1→Cy((Ri))=#data,(PC)+3→PC,0→Cy((Ri))>#data,(PC)+3+rel→PC,0→Cy((Ri))<#data,(PC)+3+rel→PC,1→Cy(3)减1非零转移的2条指令汇编语言指令指令功能DJNZRn,relDJNZdirect,rel(Rn)-1→Rn(Rn)≠00H,(PC)+2+rel→PC(Rn)=00H,(PC)+2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高速公路ETC系统升级改造合同
- 2025年度智能物流平台合作返点合同范本4篇
- 2025年度现代农业设施承揽合同补充协议4篇
- 2025年度油气储罐安全检测与改造合同4篇
- 2025年10kv线路施工绿色环保与节能减排合同3篇
- 2025年度智能车位租赁合同转让协议书(全新版)4篇
- 2024年车辆购销合同示范文本
- 2025年度智能储煤场租赁管理服务合同4篇
- 2024矿用设备租赁合同
- 2025年度城市更新改造项目承包合同签约与历史文化保护协议(2024版)3篇
- 2024年海口市选调生考试(行政职业能力测验)综合能力测试题及答案1套
- 六年级数学质量分析及改进措施
- 一年级下册数学口算题卡打印
- 2024年中科院心理咨询师新教材各单元考试题库大全-下(多选题部分)
- 真人cs基于信号发射的激光武器设计
- 【阅读提升】部编版语文五年级下册第三单元阅读要素解析 类文阅读课外阅读过关(含答案)
- 四年级上册递等式计算练习200题及答案
- 法院后勤部门述职报告
- 2024年国信证券招聘笔试参考题库附带答案详解
- 道医馆可行性报告
- 视网膜中央静脉阻塞护理查房课件
评论
0/150
提交评论