欢迎来到天天文库
浏览记录
ID:4147538
大小:450.00 KB
页数:62页
时间:2017-11-29
《第三章 指令系统汇编指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章:指令系统本讲重点:寻址方式;MCS-51指令集;伪指令;汇编语言与简单程序设计.汇编语言汇编语言:用助记符描述的指令的集合。汇编语言编写的程序借助编译工具编译成为目标代码,计算机才能识别。第三章指令系统及程序设计51系列单片机指令集含有111条指令每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类:单周期(64条);双周期(45条);4周期(2条)按指令的功能分类,可分为5大类:数据传送类(29条);算术运算类(24条)逻辑运算及移位类(24);控制转移类(17条)位操
2、作类(17条)每条指令在程序存储器ROM中占据一定的空间。按指令所占字节数分类:单字节(49条);双字节(46条);3字节(16条)ASM-51指令的格式标号代表指令所在地址,1-8个字母/数字,“:”结尾操作码就是指令功能助记符,指令实体目的操作数源操作数注释,以“;”开头标号:操作码操作数1,操作数2;注释51单片机指令的寻址方式寄存器寻址立即寻址寄存器间接寻址直接寻址变址寻址(基址寄存器+变址寄存器间接寻址)相对寻址位寻址寻址方式:指令按地址获得操作数的方式七种寻址方式,一条指令可能含多种寻
3、址方式1寄存器寻址从寄存器中读取操作数或存放操作数进寄存器例:MOVA,B;(A)←(B)MOV30H,R0;(30H)←(R0)MOVA,R1;(A)←(R1)2立即寻址操作数直接就出现在指令中例:MOVA,#64H;(A)←立即数64HADDA,#05H;(A)←(A)+立即数05H注意:符号“#”表明其后跟的是立即数,立即数——就是数字量本身。3寄存器间接寻址寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数注意:符号“@”表示“在…”,其含义与读音皆同“at”。例:[MOVR1,#3
4、0H;(R1)←立即数30H]MOV@R1,#0FH;(30H)←立即数0FHMOVA,@R1;(A)←((30H))=#0FH4直接寻址指令中直接给出了操作数所在单元的地址或名称例:MOVR1,1FH;(R1)←(1FH)MOV30H,4AH;(30H)←(4AH)5变址寻址也称为:基址寄存器+变址寄存器间接寻址设:A中已存有#A4H,DPTR中已存有#1234HMOVCA,@A+DPTR;(A)←((A)+(DPTR))操作:将A4H+1234H=12D8H单元中的数放进累加器A6相对寻址当前
5、PC值加上指令中规定的偏移量rel,构成实际的操作数地址例:SJMPrel操作:跳转到的目的地址=当前16位PC值+rel在实际编程中,“rel”通常用标号代替7位寻址指令中直接给出了操作数所在的位地址。例:CLRP1.0;(P1.0)←0SETBACC.7;(ACC.7)←1CPLC;(C)←NOT(C)注意:有的位地址十分明确,如P1.0,ACC.7等,有的位地址则“不太明确”,如:[MOVA,17H;(A)←(17H),17H是字节地址]MOVACC.0,17H;(ACC.0)←(17H),
6、这里ACC.0是位地址所以该指令中的17H是22H单元的第7位MCS-51指令集功能分五类,共111条指令MCS-51指令集(五大类功能)数据传送类指令:(29条)算术运算类指令:(24条)逻辑运算及移位类指令:(24条)控制转移类指令:(17条)位操作(布尔操作)类指令:(17条)内部存储器间传送:(MOV——16条)外部数据存储器与累加器间传送:(MOVX——4条)程序存储器向累加器传送:(MOVC——2条)数据交换:(XCH,XCHD,SWAP——5条)堆栈操作:(PUSH,POP——2条)
7、(一)数据传送类指令(5种/29条)指令常用表示符号:Rn:R0—R7@Ri:@R0,@R1#data:8位立即数#data16:16位立即数direct:直接地址rel:相对地址(一)数据传送类指令(5种/29条)内部存储器间传送指令(16条):MOV类指令的操作方向总是后面的操作数指向前面的操作数!例:MOVA,30H——(A)(30H)数据传送类指令(续)外部数据存储器与累加器间传送(4条):MOVX类指令可在累加器与外部RAM之间进行数据传送。例如:MOVXA,@DPTR——(A)((
8、DPTR))MOVXA,@Ri——(A)((Ri))MOVX@DPTR,A——((DPTR))(A)MOVX@Ri,A——((Ri))(A)程序存储器向累加器传送指令(2条):MOVCA,@A+DPTRMOVCA,@A+PC——通常称为查表指令,寻址方式属:“基址寄存器+变址寄存器间接寻址”数据传送类指令(续)@A+DPTR或@A+PC指向程序存储器中的某单元。拟传送给累加器ACC的数据就是程序中事先写进去的表格数据。这些表格数据往往用伪指令DB,DW等定义在程序中。数据传送
此文档下载收益归作者所有