文档介绍:第三章汇编语言与汇编程序
机器语言—计算机能够直接识别并执行的二进制机器指令序列
优点:开销小、运行速度快;
缺点:难以编写和理解,编程效率很低。
汇编语言(Assembly Language) —用助记符号表示机器指令代码、变量地址,标号等的符号指令序列。
优点:易记、易理解,易编写程序,大大提高了编程效率;
问题:需要将助记符号翻译为机器语言。
汇编语言源程序:用汇编语言编写的程序。
汇编程序:将助记符号翻译为机器语言的语言处理程序,以便计算机能够识别。
汇编:将助记符号翻译为机器语言的过程。
理解以上几个名词概念:
汇编语言、汇编语言源程序、汇编程序、汇编
汇编程序功能及上机过程
汇编程序功能
汇编程序的主要功能如下:
(1)检测语法错显示错误信息
(2)源程序文件二进制目标文件(并输出*.LST文件)
(3)展开宏指令
一般汇编程序都应具有如下功能:
•宏汇编功能
•支持地址和数据的符号表示
•支持内存管理
•支持程序的模块化组织
•支持多种类型的数据表示等
汇编程序依赖于硬件,不同机型的系统有自己的汇编程序。
上机过程
上机过程如图所示
上机操作步骤:
(1) 汇编源程序(用 )
:
ML [/参数选项] 源程序文件列表[/LINK 连接参数选项]
例1 汇编源程序文件
ML /c
选项/c—— ,不做连接。
例2 、可执行文件。
ML /Fl /Sg
无/c选项—,
/Fl选项—
/Sg选项—
(2) 连接产生执行文件( )
连接的操作步骤如下:
C:> LINK myprg
Microsoft(R)Overlay Linker Version 5. 03
Copyright(C)Microsoft Corp1984-1989. Allrightreserved.
Run File []:
List File []:
Libraries [.LIB]:
Definitions File []
(3)执行程序
C:>myprg
汇编语言源程序的结构与书写格式
汇编语言源程序是段结构的:代码段、数据段、堆栈段、附加段
源程序由段组成,每段有一个段名,segment定义段起点,ends定义段结束点。每段由若干语句行组成,源程序以end结束。
例 3-3 p43
例 3-3
字符串传送
汇编语言语句格式与分类
汇编语言语句一般格式为:
[标识符/语句标号] 指令名[操作数序列] [;注释]
标识符——用来为变量、段及过程等命名
语句标号——标识符后加:,提供转移地址
指令名——指令可分为三类:机器指令、伪指令和宏指令。
机器指令:指令系统中的指令,程序运行时由CPU执行;
伪指令:汇编程序执行的操作,规定汇编程序如何按要求进行汇编及分配内存。
宏指令:由一系列指令或伪指令构成,汇编时展开成若干条机器指令,用于提高编程效率。
操作数序列——可以是常量、变量、表达式、寄存器名或标号等,用逗号隔开。
(伪指令和宏指令由汇编程序在汇编期间处理)
注释符——“;”后可给出语句注释,提高可读性和可理解性。
常量、变量、标号、运算符和表达式
(1)常量
00110110B 389D 467O B407H
+5 'Input a number'
(2)变量
变量名:存储单元的符号地址
变量值:存储单元中的数据
MOV AL, 'A'
mov al, 'a'
变量的三种属性:
段值(SEG):变量所在段的起始地址
偏移量(OFFSET):段起点距离变量所在存储单
元位置的字节数
50
偏移量
段起点
类型(TYPE):变量占用的字节数
伪指令改变默认进制,其格式为:
.RADIX n ( n为默认进制的基数)
例如: .RADIX 16 定义十六进制为默认的进制
(3)标号
标号:存放指令的存储单元的符号地址,常用作转移地址。
NEAR :2字节转移地址
…
CMP AX,BX
JNE NEXT
…
NEXT: MOV AX,0
…