汇编语言语句和格式
两种基本语句:指令语句和伪指令语句。
一、指令语句
每一指令语句在汇编时都产生一个机器代码,执行该指令代码对应着机器的一种操作。
二、伪指令语句
是控制汇编过程的一些控制命令。如:控制汇编程序的输入/输出、定义数据和符号、条件汇编、分配存储空间等。
在汇编时没有机器代码与之对应。
1.汇编起始地址
ORG adder
规定下一指令存放的起始地址。例如:
ORG 2000H
MOV A,#00H;规定MOV指令从2000H开始 存放
可多次用ORG指令,规定不同的程序段的起始地址。
地址必须由小到大排列,且不能交叉。
2. 源程序结束
END
终止源程序的汇编工作。
整个源程序中只能有一条END命令,且位于程序的最后。
3.数据地址赋值
名称 DATA 表达式
把表达式值赋值给字符名称。
赋值后,字符名在整个程序有效。
常用来定义数据地址。例如:
VAL DATA 70H
表示变量名VAL定义在数据RAM的70H单元 。
4.符号赋值
名称 EQU 数或汇编符号
把数或汇编符号赋值给字符名称。
赋值后,字符名在整个程序有效。
可以是数据地址、代码地址、位地址或立即数。例如:
AA EQU R1;AA=R1
MOV A, AA
DELY EQU 07B3H;DELY=07B3H
LCALL DELY
汇编时,凡是AA、DELY均以R1、07B3H代替。
5.定义数据字节
[变量名:] DB 数据1,数据2, …
从程序存储器当前地址开始,在连续单元中定义字节数据。例如:
ORG 2000H
DB 30H, 40H, 24, ‘C’, ‘B’
汇编后
(2000H)=30H
(2001H)=40H
(2002H)=18H(十进制数24)
(2003H)=43H(字符‘C’的ASCII码)
(2004H)=42H(字符‘B’的ASCII码)
6.定义数据字
[变量名:] DW 数据1,数据2, …
从程序存储器当前地址开始,在连续单元中定义字节数据。例如:ORG 2000H
DW 1246H,7BH,10
汇编后
(2000H)=12H ;第1个字
(2001H)=46H
(2002H)=00H ;第2个字
(2003H)=7BH
(2004H)=00H ;第3个字
(2005H)=0AH
7.定义存储区
[变量名:] DS 数据
从程序存储器当前地址开始,保留指定数目的字节单元。例如:
TABEL:DS 10
表示从TABEL代表的地址开始,保留10个连续的地址单元。
ORG 2000H
DS 10 H
表示从2000H地址开始,保留16个连续地址单元。
8.位定义
名称 BIT 位地址
给字符名称赋以位地址,位地址可以是绝对位地址或位名。例如:
QA BIT P1.6;把P1.6的位地址赋给变量QA