1.常用单位与术语
位(bit):位是计算机所能表示的最小、最基本的数据单位,通常是指一个二进制位。
字节(byte):一个连续的8位二进制数码称为一个字节,即1byte=8bit。
字(word):通常由16位二进制数码组成,即1word=2byte。
字长:字长是指计算机一次处理二进制数码位的多少。mcs51系列单片机是8位机,所以说它的字长为8位。
mcs-51系列单片机都是以intel公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。本章以8051为主介绍mcs51系列单片机。
2.汇编语言指令格式
指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。完整的指令格式如下:
[标号:]操作码[操作数][,操作数][;注释]
其中,[]项是可选项。
标号:指本条指令起始地址的符号,也称为指令的符号地址。标号代表该条指令在程序编译时的具体地址。
操作码:又称助记符,它是由对应的英文缩写构成的,是指令语句的关键。它规定了指令具体的操作功能,描述指令的操作性质,是一条指令中不可缺少的内容。
操作数:它既可以是一个具体的数据,也可以是存放数据的地址。
注释:注释也是指令语句的可选项,它是为增加程序的可读性而设置的,是针对某指令而添加的说明性文字,不产生可执行的目标代码。
3.伪指令
伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是cpu不能执行的指令。
(1)定位伪指令org
格式:org n
其中:n通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。
例如程序:
(2)结束汇编伪指令end
格式:[标号:]end[表达式](www.xing528.com)
功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。
(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的值赋予字符名称x。程序中凡出现该字符名称(x)就代表该位地址。位地址n可以是绝对地址,也可以是符号地址。
(8)数据地址赋值伪指令data
格式:字符名称x data表达式n
功能:把表达式n的值赋值给左边的字符名称x。n可以是数据或地址,也可以是包含所定义的字符名称x在内的表达式,但不能是汇编符号。
data与equ的主要区别是:equ定义的字符名称必须先定义后使用,而data定义的字符名称没有这种限制。所以,data伪指令通常用在源程序的开头或末尾。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。