文档介绍:第三章:指令系统
本讲重点:
寻址方式;
MCS-51指令集;
伪指令;
汇编语言与简单程序设计.
汇编语言
汇编语言:用助记符描述的指令的集合。
汇编语言编写的程序借助编译工具编译成为目标代码,计算机才能识别。
第三章指令系统及程序设计
51系列单片机指令集含有111条指令
每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类:
单周期(64条);双周期(45条);4周期(2条)
按指令的功能分类,可分为5大类:
数据传送类(29条);算术运算类(24条)
逻辑运算及移位类(24);控制转移类(17条)
位操作类(17条)
每条指令在程序存储器ROM中占据一定的空间。按指令所占字节数分类:
单字节(49条);双字节(46条);3字节(16条)
ASM-51指令的格式
标号代表指令所在地址,1-8个字母/数字,“:”结尾
操作码就是指令功能助记符,指令实体
目的操作数
源操作数
注释,以“; ”开头
标号: 操作码操作数1,操作数2 ;注释
51单片机指令的寻址方式
寄存器寻址
立即寻址
寄存器间接寻址
直接寻址
变址寻址(基址寄存器+变址寄存器间接寻址)
相对寻址
位寻址
寻址方式:指令按地址获得操作数的方式
七种寻址方式,一条指令可能含多种寻址方式
1 寄存器寻址
从寄存器中读取操作数或存放操作数进寄存器
例:MOV A,B ; (A) ←(B)
MOV 30H,R0 ;(30H)←(R0)
MOV A,R1 ; (A) ←(R1)
2 立即寻址
操作数直接就出现在指令中
例:MOV A,#64H ;(A)←立即数 64H
ADD A,#05H ;(A)←(A)+立即数 05H
注意:符号“#”表明其后跟的是立即数,
立即数——就是数字量本身。
3 寄存器间接寻址
寄存器中的内容是一个地址,由该地址单元
寻址到所需的操作数
注意:
符号“@”表示“在…”,其含义与读音皆同“at”。
例:
[ MOV R1,#30H ;(R1)←立即数30H ]
MOV ***@R1,#0FH ;(30H)←立即数0FH
MOV A,***@R1 ;(A)←((30H))=#0FH
4 直接寻址
指令中直接给出了操作数所在单元的地址或名称
例:MOV R1,1FH ;(R1) ←(1FH)
MOV 30H,4AH ;(30H)←(4AH)
5 变址寻址
也称为: 基址寄存器+变址寄存器间接寻址
设:A中已存有#A4H,DPTR中已存有#1234H
MOVC A,***@A+DPTR;(A)←((A)+(DPTR))
操作:将A4H+1234H=12D8H单元中的数放进累加器A