汇编语言--基础篇
一、基本概念
概 念:是由助记符、符号地址、标号等书写程序的语言。
目 的:汇编语言源程序通过加工翻译(又叫做汇编)转换成机器语言。
实 质: 汇编程序是一种系统软件。IBMPC系统配置了两种汇编程序:ASM小汇编 、MASM宏汇编(主流)。
二、基本语法
1.字符集
2.标识符 (首字母不能是数字,可以是字母问号@和下划线 )
3.保留字 (不能当做标识符使用)
4.语句 (指令语句和伪指令语句)
- 指令语句->产生目标代码。 [标号:] [前缀] 指令助记符 [操作数] [;注释]
- 标号:代表指令语句储存器地址.
- 前缀:80x86特殊指令。必须与其他语句配合使用,例如段跨越前缀、重复前缀、总线封锁前缀以及操纵尺寸和寻址尺寸等,经过汇编后产生特殊前缀.
- 指令助记符:80x86指令名称代表符号。指令操作类型。用于宏定义语句定义宏指令名.
- 操作数:指令要处理的数据。可以是一个或者两个也可以没有,若有两个操作数前面的是目标操作数后面为源操作数,两者用都逗号隔开 .
- 注释:是指令功能说明。以“ ; ”开始的字符串.
- 伪指令语句->提供编译信息并指示程序某些操作语句,不产生目标代码。 [名字] 伪操作命令 [操作数] [;注释]
- 名字:伪指令语句中的名子后面不能有“ ; ”语句中名子字可以是符号名、常量名、变量名、过程名、和段名等.
- 伪操作命令:主要包括符号定义、变量定义、程序分段定义、过程定义、模块定义、宏定义以及后来扩充段简化定义和内存模式定义等命令.
- 操作数:与指令语句有类似作用.
- 注释:与指令语句有类似作用.
三、程序结构
分为四种类型的段:代码段、数据段、堆栈段和附加段 。(每个段在程序中的顺序没有先后,段的数目也不受限制,必须有段名 )
例1:单模块汇编语言程序结构
DATA SEGMENT ;定义数据段
<数据定义伪指令序列>
DATA ENDS DATA SEGMENT STACK ;定义堆栈段
<数据定义伪指令序列>
STACK ENDS CODE SEGMENT ;定义代码段
<程序段>
CODE ENDS
END 标号
注意:综合上述,用汇编语言编写的考程序,在结构上具有以下特点。
①由若干逻辑段组成,各逻辑段包含伪指令语句定义和说明。
②整个源程序以伪指令END结束。
③每个逻辑段由语句序列组成,各语句可以是指令语句、伪指令语句、宏指令语句、注释语句或空行。
四、处理过程
源程序—汇编程序−汇编语言源文件−机器语言目标文件−执行文件−结果
↓ 行汇编(汇编语言源程序逐行汇编,常见的IBM PC 动态调试DEBUG 中的A命令)
↓ 宏汇编(作为主流步骤1.建立源程序2.产生目标程序3.链接目标程序4.运行调试)