本章介绍了8051单片机的指令格式和寻址方式,讲述了数据传送、算术运算、逻辑运算及移位、位操作、控制转移指令,读者应对常用的指令熟练掌握,以便为程序设计打下必要的基础。
本章的重点是数据传送、算术与逻辑运算、位操作、控制转移指令,难点是算术与逻辑运算对程序状态字(PSW)的影响以及控制转移指令的用法。
汇编语言程序由一系列语句组成,包括指令和伪指令。指令由汇编器翻译成机器码。伪指令不翻译成机器码,它们用以指导汇编器如何将指令翻译成机器码。
1.汇编语言指令格式
汇编指令分为2类,执行指令和伪指令。执行指令即指令系统给出的各种指令;伪指令由汇编程序规定,是提供汇编控制信息的指令。
(1)汇编语言执行指令格式 一条汇编语言指令中最多包含如下4个区段:
标号:操作码 操作数;注释
4个区段之间要用分隔符分开,标号区段与操作码区段之间用冒号“:”隔开,操作码与操作数之间用空格隔开,操作数与注释区段之间用分号“;”隔开。如果操作数区段中有2个以上的操作数,则在操作数之间要用逗号“,”隔开。例如,把立即数0C0H送累加器的指令为:
(2)汇编语言伪指令 常用的伪指令有下列几种:
1)ORG伪指令总是出现在每段源程序或数据块的开始,它指明此语句后面的程序或数据块的起始地址。其一般格式为:
ORG nn (绝对地址或标号)
2)标号:DB字节常数或字符或表达式
其中,标号区段可有可无,字节常数或字符是指一个字节数据,或用逗号分开的字节串,或用引号括起来的ASCII码字符串(一个ASCII字符相当于一个字节)。此伪指令的功能是把字节常数或字节串存入内存连续单元中。
3)标号: DW 字或字串
DW伪指令的功能与DB相似,其区别在于DB是定义一个字节,而DW是定义一个字(规定为2个字节,即16位二进制数),故DW主要用来定义地址。存放时一个字需2个单元,高8位先存,低8位后存,这和8051指令中的16位数据存放顺序是一致的。
4)标号 EQU 操作数
EQU伪指令的功能是将操作数赋值于标号,使两边的两个量等值。例如语句
AREA EQU 2000H
即给标号AREA赋值为2000H。
5)END(汇编结束)(www.xing528.com)
标号:END 地址或标号
其中标号以及操作数字段的地址或标号不是必要的。
END伪指令是一个结束标志,用来指示汇编语言源程序段已结束。
2.寻址方式
在指令中操作数的存取方法就是寻址方式。不同的指令需要不同的寻址方式,不同的指令系统的寻址方式也不全相同。
8051指令系统有如下7种寻址方式,每种方式都有其对应的有效寻址范围(空间)。
寄存器寻址——对选中的寄存器中的数据进行处理。
直接寻址——又称为绝对寻址,按给出的地址数据直接对存储器单元访问。
立即寻址——直接进行给出的立即数处理。
寄存器间接寻址——用寄存器中的数据作存储器的单元地址来访问该存储单元。
相对寻址——为解决程序转移而专门设置的,为转移指令所采用。
位寻址——8051共有211个可寻址位。
基址加变址寄存器间接寻址——用一个基址(基本地址指针)寄存器和一个偏移量地址寄存器分别存储基本地址和偏移量地址,用两者相加形成的数据作为存储单元的地址来访问该存储单元。
3.8051单片机指令分类
1)数据传送类。
2)算术运算类。
3)逻辑运算类。
4)控制转移类。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。