文档介绍:第四章汇编语言程序设计
汇编语言程序格式
MASM中的表达式
伪指令语句
DOS系统功能调用和BIOS中断调用
程序设计方法
宏汇编和条件汇编
内容提要
1
▲汇编语言(Assembly Language)
指令的助记符+ 符号地址+ 标号
是机器语言的符号表示,是较低级的语言。
▲源程序
利用汇编语言编写的程序,称源程序。不能被机器识别。
汇编程序翻译成二进制的浮动目标程序
汇编语言:实时性能好,程序效率高,节省内存,运行速度快,
第四章宏汇编语言程序设计——概述
概述
2
§4-1 汇编语言程序格式
§4-1 汇编语言程序格式——概述
宏汇编使用的语句分两类
指令性语句
伪指令语句/指示性语句
3
§4-1 汇编语言程序格式——指令性语句
指令性语句:与机器指令相对应,可译成目标代码(机器指令代码)。
语句格式:
标号: 指令助记符操作数,操作数;注释
▲标号:指令语句的符号地址,后面必须紧跟冒号“:”。
注意:标号可使用字母、数字和特殊符号;首字符必须是字母或特殊符号;最大长度31个字符;可以省略,经常作为表示转移的地址。
▲指令助记符:指令名称的代表符号,指出指令的操作类型。
可译成机器码;不可省略,是关键字。
▲操作数:参与指令运算的数据。
可以有一个、多个操作数或无操作数;多个操作数之间用逗号“,”隔开,操作数与指令助记符之间用“空格”隔开。
操作数可以是常数、变量、标号、寄存器名或表达式。
▲注释:说明指令或程序的功能,可省略。注释前加分号“;”。
一、指令性语句
4
§4-1 汇编语言程序格式——伪指令语句
伪指令语句:无对应的机器指令,汇编时对伪指令进行处理,可完成数据定义、存储区分配、段定义、段分配、指示程序结束等功能。
语句的格式:
名字伪指令指示符操作数,操作数;注释
▲名字:名字后不允许带冒号“:”,但可以省略。
通常是变量名、段名、过程名、符号名等。
▲伪指令指示符:汇编程序MASM规定的符号。
常用的有变量定义语句(DB、DW),符号定义语句(EQU、=),段定义语句(SEGMENT…END),段分配语句(ASSUME),过程定义语句(PROC…ENDP)等。
▲操作数:不同伪指令有不同要求。
操作数可以是常数、变量、字符串、表达式等。
▲注释:功能和使用与指令性语句相同。
二、伪指令语句/指示性语句
5
§4-1 汇编语言程序格式——数据项
汇编语言中的操作数,可以是常数、寄存器、存储器、变量、标号或表达式。其中,常数、变量、标号是三种基本数据项。
:
是固定值,没有属性,是确定的数据。
二进制:字母“B”结尾,例00110100B;
八进制:字母“Q”或“O”结尾,例1037O、2370Q;
十进制:字母“D”结尾或省略,或科学表示法,例1234D、5678、-2;
十六进制:字母“H”结尾,“A~F”开头时,前面加0,例56H、0A7F2H;
字符串:用单引号‘’括起来,机内存放的是各字符的ASCII码。例‘ABC’。
三、数据项
6
§4-1 汇编语言程序格式——数据项
:
变量通常指存放在存储单元中的值,程序运行中可以修改。
所有的变量都具有三个属性。
⑴段值(SEGMENT):
指变量所在段的段基址。
⑵段内偏移地址(OFFSET):
指变量所在地址与所在段首地址之间的地址偏移字节数。
⑶类型(TYPE):
指变量中每个元素所包含的字节数:字节变量(BYTE)、字变量(WORD)、双字变量(DWORD)等。
7
§4-1 汇编语言程序格式——数据项
:
标号是可执行指令语句的地址的符号表示,可作为程序转向的目标地址。具有三个属性。
(1)段值(SEGMENT):
标号所在段的段基址。
(2)段内偏移地址(OFFSET):
标号所在地址与所在段的段首址之间的偏移地址字节数。
(3)类型(TYPE):指在转移指令中标号可转移的距离,也称距离属性。
类型NEAR,表示此标号为近标号,只能实现段内转移或调用;
类型FAR,表示此标号为远标号,可以实现段间转移或调用。
若标号后面紧跟冒号,表示隐含此标号距离属性为NEAR,也可用伪指令将此属性改为FAR。
8
§4-2 MASM中的表达式——概述
§4-2 MASM中的表达式
概述
表达式:运算对象+ 运算符。
·在汇编时进行运算,运算结果作为语句中的操作数。
运算对象:常数、变量、标号。
·得到的运算结果可以是一个常数字,也可以是一个存储器的地址。
MASM中6类运算符:如表4-1所示。
·算术运算符(Arithmetic Operators)
·逻辑运算符(