- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理及应用第四章宏汇编
第四章 MASM-86宏汇编语言程序
【基本概念】
语言特点
机器语言: 机器码表示, 例如B8H, C3H (天书)
汇编语言: 用助记符表示机器码, 例机器码B8H, C3H的助记符为MOV AX, BX, CPU不同,机器码不同, 助记符不同, (难学)
高级语言: 语言规范, 可用于不同的CPU (常用)
语言优化
1. 汇编语言: 时间, 空间均优化 但源程序复杂
2. 高级语言: 时间, 空间均较差 但源程序简单
语言到机器码过程
1: 机器语言 —— 直译 ——
2: 汇编语言 —— 汇编, 连接 —— 机器码
3: 高级语言 —— 编译, 连接 ——
程序开发过程
1. 源程序的编辑 产生源文件 如 *.ASM
2. 目标程序的汇编( 编译) 产生目标文件 如 *.OBJ
3. 执行程序的连接 产生执行程序文件 如 *.EXE
汇编程序的设计过程
编辑: 用EDIT.COM软件设计源程序文件*.ASM
汇编: 用MASM.EXE软件对*.ASM文件进行汇编,
产生目标文件 *.OBJ
连接: 用LINK.EXE软件对*.OBJ文件集合进行连接,
产生执行文件 *.EXE
§4.1汇编语言与汇编程序
一: 汇编语言(汇编源程序)
1: 用指令助记符表示机器码
2: 用符号地址表示存储器地址
3: 用伪指令管理源程序
二: 汇编程序
1: 用MASM.EXE 对 *.ASM源程序进行汇编
2: 汇编产生文件
A: *.OBJ 浮动地址目标文件, 为连接作准备
B: *.LST 指令, 机器码列表文件
1): 代码段 指令 —— 机器码
伪指令 —— 无机器码
2): 数据段 符号地址 —— 段内地址量
3: 汇编程序例
A: 147页图4-3为用编辑软件编写的MASM-86汇编源程
B: 145页图4-2为用汇编软件MASM.EXE汇编产生的列表文件
1): 数据段列表的特点——数据类型与存储空间分配
2): 代码段列表的特点——指令语句与伪指令语句
3): 符号地址与浮动地址
§4.2 基本语法规范
一: 字符集
1: 字母A ~ Z 或a ~ z 汇编源程序中, 大小写字符功能一样
2: 数字1 ~ 9
3: 特殊符号
二: 保留字
1: 寄存器名 例AX, SP
2: 标志符 例CF, TF
3: 指令助记符 例MOV, ADD
4: 伪指令符 例SEGMENT, END
5: 运算符 例OFFSET, PTR
三: 标识符(标号, 变量名)
1: 标识符的使用
A: 符合字符集要求, 不使用保留字
B: 长度小于32个字符, 第一个符号最好用字母
2: 标识符的作用
A: 段名定义
B: 过程名, 结构名, 宏名等定义
C: 数据段符号地址(地址变量名)定义
注: 地址变量具有段, 偏移量, 数据类型三种属性
3: 标识符的使用特点
A: 数据段的使用特点
地址变量具有存储地址和数据类型的特征
B: 代码段的使用特点
1): 伪指令前的标号定义, 标号
2): 指令前的标号定义, 标号:
C: 标识符与常量
1): MOV AL, F8H
从符号地址F8H中取字节数据赋给AL, 即(AL) = [F8H]
2): MOV AL, 0F8H
常量F8H赋给AL, 即(AL) = F8H
4: 语句
A: 指令语句 —— 可译为机器码
B: 伪指令语句 —— 仅管理用
C: 宏指令语句 —— 宏代替, 省时不省空
注: 过程调用为省空不省时
5: 注释
在语句的尾部加 ;( 分号) 可写语句功能说明
§4.3 表达式及运算符
一: 表达式
操作数段含有运算符就构成表达式
1: 数值表达式
MOV AX, 2000H +2 等于 MOV AX, 2002H
2: 地址表达式
MOV AX, [2000H + 2] 等于 MOV AX, [2002H]
MOV AX, BUFF + 3 BUFF为符号地址,
从BUFF + 3地址单元取字数据给AX
注: MOV AX, [BX +2] 不是地址表达式, 而是寻址方式,
可写为MOV AX, 2[BX]
二: 运算符(151页表4-1)
1: 算术运算符
A: 数值表达式中可用所有算术运
文档评论(0)