第三章 指令系统及程序设计
.指令:能完成特定功能的命令。
.指令系统:CPU所能执行的各种指令的集合。
汇编语言程序设计:利用汇编语言设计程序。
.MCS-51系列单片机的指令系统功能完善,灵活方便。
3.1 MCS-51指令系统简介
.MCS-51的基本指令共111条,其指令系统是一个具有255中操作码(00H至FFH,除A5H外)的集合。
.用汇编语言表达操作代码时,只要熟记42种助记符。同一种指令所对应的操作码可以多至八种(如指令中Rn对应寄存器R0-R7)。
MCS-51的指令系统按指令功能分为七类:
1) 数据传输类;
2)算术运算类;
3)逻辑运算类;
4)控制转移类;
5)微操作。
3.2 MCS-51指令系统的寻址方式
.寻址方式:CPU寻找操作数或操作数地址的方法。
.寻址方式越多。计算机指令功能越强,灵活性越大。
.MCS-51采用7中寻址方式。
序号 | 方式 | 利用的变量 | 使用的空间 |
1 | 寄存器寻址 | R0-R7,A、B、Cy、DPTR | 片内 |
2 | 直接寻址 | DHect SFR | 内部RAM和特殊功能寄存器 |
3 | 寄存器间接寻址 |
@R0, @R1,SP @R0, @R1, @DPTR |
内部RAM 外部RAM |
4 | 立即寻址 | 程序存储器 | |
5 | 变址寻址 | @A+DPTR, @A+PC | |
6 | 相对寻址 | PC + 偏移量 | |
7 | 位寻址 | bit |
内部RAM的分特性功能 寄存器 |
寄存器寻址
.可访问选定寄存区的8个工作寄存器R0--R7。由指令操作码的低3位指示所用的寄存器,寄存A,B,DPTR和CY也可以作为寻址的对象。
.如指令MOV A, Rn(n=0--7)表示把寄存器Rn的内容传送给累加器A.
.例如指令MOV A, R7; 机器码为EFH.
直接寻址
.直接给出内部RAM地址.
.例如指令MOV A,3FH;机器码为E5H 3FH,表示把内部RAM 3FH单元的内容传送给A.
对于特殊功能寄存器,在助记符指令中可直接用符号来代替地址,如MOV A, P0表示口(地址为80H)的内容传送给累加器A.这种写法与MOV A,80H等同。便更容易理解和阅读。
寄存器间接寻址
.寄存器间接寻址方式可以用于访问内部RAM或外部数据存储器。指令制定某一寄存器的内部为操作数的地址。
.访问内部RAM的低256个字节时,可采取RO或R1作为间址寄存器。访问外部RAM, 还可以用数据指针DPTR作为间址寄存器。
.例如指令ANL A, @RI; 机器码为57H。