支持PC系列微机的汇编程序有ASM、MASM、OPTASM等多种,现在广泛使用的MASM是美国Microsoft公司开发的宏汇编程序。它不仅包含了ASM的功能,还增加了宏指令、结构、记录等高级宏汇编语言功能。
MASM宏汇编语言有两种基本语句,它们是指令语句和指示语句(又称伪指令语句)。
1.指令语句(Instruction Statement)
指令语句又称可执行语句,它要求CPU执行某种操作。在第3章中介绍的各种指令都是指令语句,指令语句经汇编后产生机器目标代码。
指令语句的格式为:[标号:]指令助记符[操作数][;注释]
一条指令语句可分为四个字段,其中方括号内的字段为可选项。
1)标号字段(Label field)
这是一个任选项,以“”作为结束符。标号是该指令的符号地址,它代表该指令的第一个字节地址。一个程序段或子程序的入口处通常用一个标号来表示,当程序需要转移或调用时,可直接引用此标号,这给编程带来了方便。
汇编语言中,用来标识某种数据结构名称(如变量、标号、过程名等)的有效字符序列称为标识符。MASM的标识符组成规则如下:
(1)标识符有效长度1~31个字符;
(2)标识符由字母(大写或小写的英文字母),数字(0~9)或某些特殊字符如@S|:・/等组成;
(3)第一个字符必须是字母,不允许用数字开头,也不允许用特殊符号单独作为标识符;
(4)标识符不能使用系统专用字,如AX(寄存器名),MOV(助记符)等。
2)指令助记符字段(Mnemonic field)
助记符是指令的关键部分,不可省略,例如MOV、ADD、SHL等。助记符表示要CPU完成什么具体操作,必要时可在助记符前加前缀以实现某些附加操作(如重复前缀REP)
3)操作数字段(Operand field)
操作数是指令运算时需要的数据。由于有些指令不需要数据,因此这部分可默认。当指令要求有两个操作数时,必须用逗号将两个操作数分开。操作数可以用表达式来表示。
4)注释字段(Comment field)
注释字段是可选项。如果语句中带注释字段,则必须用分号开始。注释字段用于对程序或指令加注释,用以提高程序的可读性,但汇编程序不对它做任何处理。
2.指示性语句(Pseud Instruction Statement)
指示语句又称伪指令,它不要求CPU执行某种操作,汇编时也不产生对应的机器代码,而仅仅给汇编程序提供汇编信息,如源程序起止信息、段内存的安排等。
伪指令的格式为:[名字]伪指令定义符[操作数][;注释]
其中方括号内的字段为可选项。
指示语句的格式与指令语句类似,不同之处有以下几点:
(1)名字是给伪指令取的名称,相当于指令语句的标号,但在名字后面不允许带冒号(:),名字可以默认。
(2)伪指令定义符是由MASM规定的符号,又称为汇编命令,不可默认,如DB、DW、PROC等。
(3)操作数个数随不同伪指令而相差悬殊,有的伪指令不允许有操作数,有的伪指令允许带许多个操作数,这时必须用逗号将各个操作数分开。