文档介绍:第2章 MCS-51单片机指令系统与汇编语言程序设计
主要内容:
MCS-51单片机的寻址方式、指令系统、基本程序结构及汇编语言的开发和调试。重点在于寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌握。难点在于控制转移、位操作指令的理解及各种指令的灵活应用,以及程序设计的基本方法和针对具体的硬件设计出最合理的软件。
指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。
机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。机器语言指令是计算机惟一能识别和执行的指令。
汇编语言:指令系统是利用指令助记符来描述的,称为汇编语言。
计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。
单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对其进行编程,
概述
汇编语言指令格式与伪指令
位(bit):位是计算机所能表示的最小的、最基本的数据单位,位通常是指一个二进制位。
字节(Byte):一个连续的8位二进制数码称为一个字节,即1Byte=8bit。
字(Word):通常由16位二进制数码组成,即1Word=2Byte。
字长:字长是指计算机一次处理二进制数码位的多少。MCS-51型单片机是8位机,所以说它的字长为8位。
MCS-51系列单片机都是以Intel公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。本章以8051为主介绍MCS-51系列单片机。
指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。完整的指令格式如下:
[标号:] 操作码[操作数] [,操作数] [;注释]
其中:[ ]项是可选项。
标号:指本条指令起始地址的符号,也称为指令的符号地址。代表该条指令在程序编译时的具体地址。
操作码:又称助记符,它是由对应的英文缩写构成的,是指令语句的关键。它规定了指令具体的操作功能,描述指令的操作性质,是一条指令中不可缺少的内容。
操作数:它既可以是一个具体的数据,也可以是存放数据的地址。
注释:注释也是指令语句的可选项,它是为增加程序的可读性而设置的,是针对某指令而添加的说明性文字,不产生可执行的目标代码。
伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是CPU不能执行的指令。
(1)
n
其中:n通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。
例如程序: ORG 1000H
START: MOV A,#20H
MOV B,#30H
┇
(2)结束汇编伪指令END
格式:[标号:] END [表达式]
功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。
(3)赋值伪指令EQU
格式:字符名称x EQU 赋值项n
功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以是常数、地址、标号或表达式。在使用时,必须先赋值后使用。
“字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。
(4)定义字节伪指令DB
格式:[标号:] DB x1, x2,…, xn
功能:将8位数据(或8位数据组)x1, x2,…, xn顺序存放在从当前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII码、表达式,也可以是括在单引号内的字符串。两个数据之间用逗号“,”分隔。
xi为数值常数时,取值范围为00H~FFH。xi为ASCII码时,要使用单引号‘’,以示区别。xi为字符串常数时,其长度不应超过80个字符。
(5)定义双字节伪指令DW
格式:[标号:] DW x1, x2,…, xn
功能:将双字节数据[或双字节数据组]顺序存放在从标号指定地址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先存高8位(存入低位地址单元中),后存低8位(存入高位地址单元中)。
(6)预留存储空间伪指令DS
格式:[标号:] DS n
功能:从标号指定地址单元开始,预留n个存储单元,汇编时不对这些存储单元赋值。n可以是数据,也可以是表达式。
(7)定义位地址符号伪指令BIT
格式:字符名称x BIT 位地址n
功能:将位地址n