文档介绍:第6章汇编语言程序格式和上机调试
主讲人:×××
汇编语言源程序与汇编程序
汇编语言源程序是用汇编语言编写的程序,简称汇编语言程序。汇编语言程序通过编辑程序在计算机中建立汇编语言源程序文件(ASM文件)。
将汇编语言源程序编译成目标程序的加工程序称为汇编程序。这一加工过程称为汇编。
汇编程序的作用就是把源程序文件(ASM文件)转换成用二进制代码表示的目标程序文件(OBJ文件)。
汇编程序的主要功能有:
(1)检查源程序;
(2)测出源程序语法错误,并给出错误;
(3)产生目标程序,并可给出列表文件;
(4)展开宏指令.
汇编语言语句种类及其格式
语句是汇编语言源程序的基本组成单位。一个汇编语言源程序中有两种最基本语句:指令语句、伪指令语句,它们不仅在程序中的功能不同,而且实现其功能的方法和时间也是不同的。
指令语句
指令语句就是计算机中指令系统的各条指令,每条指令语句在汇编时都产生一个供CPU执行的机器目标代码,所以这种语句又称为可执行语句。
计算机中每条指令语句表示一种基本功能,这些基本功能是在程序运行期间由计算机硬件来实现的。一条指令语句由四个字段组成,其一般格式如下:
[标号:] 指令助记符[操作数] [;注释]
1. 标号
标号是指令语句的符号地址,它代表指令代码存放地址的第一个字节地址。
标号一般在代码段中定义和引用。由于标号代表了指令的符号地址,所以标号也有3个属性:
(1)段属性(SEG):标号的段属性是指标号定义所在段的段首地址。
(2)偏移属性(OFFSET):标号的偏移属性是指标号所在段的段首地址到该标号的字节距离。
(3)类型属性(TYPE):
标号的类型属性表示了它的转移特性,即该标号是作为段内还是段间转移(或调用)指令的目标地址。标号的类型属性有2种:NEAR类型和FAR类型。如果标号是用于段内跳转的,则是NEAR属性;如果是用于段间跳转的,则是FAR属性。
2. 指令助记符
指令助记符为指令语句的核心,是不可省略的主要部分,如MOV、ADD、XOR、RCL等等,它表示指令语句要求CPU完成的具体操作。
3. 操作数
操作数表示指令助记符的操作对象,不同的指令所带的操作数不同,有一个操作数的指令(如INC、NOT等),有二个操作数的指令(如ADD、XOR等),无操作数指令(如CLC、STD等)。
若需要操作数,则每一个操作数要依据寻址方式来表示。操作数可以是常数、寄存器、标号、变量和表达式。
注释是用来说明一段程序或一条或多条指令的功能,它是可选项,注释均以分号“;”开始,它可占一行或多行。注释还通常用于调试程序。注释是语句的非执行部分,因此,它不出现在机器目标代码中,也不影响指令语句的功能。
例如:
MOV AX,220 ;将立即数220送到AX中
其中,MOV为,指令助记符;AX和220为操作数;分号后为注释。
伪指令语句
伪指令语句指示汇编程序在汇编源程序时完成某些工作,比如完成数据定义、分配存储区、指示程序结束等。
伪指令属于汇编控制命令,它所指示的操作是由汇编程序在汇编源程序时完成的,在汇编时,它不产生目标代码。
伪指令语句与指令语句的主要区别是:伪指令语句经汇编后不产生机器目标代码,而指令语句经汇编后将产生相应的机器目标代码;伪指令语句所指示的操作是在程序汇编时完成的,而指令语句的操作必须在程序运行时才能完成。
一条伪指令语句也由四个字段组成,其一般格式如下:
[符号名] 伪指令符操作数[;注释]