
“汇编语言程序设计”是高校计算机专业的主干课程之一。本书以8086/8088指令为主,以实模式下的80x86指令为辅,系统地介绍了汇编语言的基础理论知识和程序设计方法。主要内容包括:汇编语言程序设计基础知识、8086指令寻址方式及指令系统、常用伪指令、程序设计方法、高级汇编技术、80x86指令系统、汇编语言与C语言混合设计的方法。本书各章节内容重点突出、结构清晰、简洁易懂。
在本书的实验工具软件一章中,介绍了两种调试软件:基于MASM 5.0的DEBUG和基于MASM 6.11的PWB、CodeView,为读者进行汇编语言程序设计提供了方便。
本书可作为本科院校计算机及相关专业的教材,也可供科研及软件开发人员自学参考。
汇编语言程序设计技术是计算机专业学生必须掌握的基本技能之一。使用汇编语言编写程序,用户可以直接访问计算机系统内部各资源,具有实时性强、占用存储资源少、执行速度快、代码效率高等优点。另外,通过汇编语言的学习,学生可以更好地理解计算机系统的组成及工作原理。因此“汇编语言程序设计”这门课程始终是高校计算机专业及相关学科的经典课程之一。
面对计算机技术的迅猛发展,传统的基于DOS平台的汇编语言程序设计已经不能满足需要。因此,本书从便于教学出发,在内容编排上既兼顾了以传统的Intel 8086/8088为代表的16位汇编语言程序设计,同时又以较大的篇幅介绍了80x86指令系统和相关的程序设计方法。
全书共分10章。第1章介绍了学习80x86汇编语言程序设计所需要的基础知识;第2章介绍了伪指令及汇编语言程序设计结构;第3章介绍了8086的寻址方式及指令系统;第4章系统地介绍了顺序、分支及循环程序设计的基本方法和技巧;第5章重点介绍了子程序和宏汇编程序设计的基本方法;第6章介绍了32位指令的寻址方式、指令系统及相关的程序设计方法;第7章介绍了汇编程序应用实例;第8章介绍了输入输出程序设计和中断程序设计的概念及方法,以及DOS和BIOS中断调用的调用方法;第9章介绍了C语言与汇编语言混合编程方法;第10章介绍了Debug、PWB、Code View等调试工具的使用方法。
本书由宋人杰教授负责组织编写,其中,第1、4、5章由宋人杰编写;第2、3章由周欣欣编写;第6、7章由张洪业编写;第8、9章由王润辉编写;第10章由牛斗编写。
由于编者水平有限,书中如有错误和不妥之处,敬请广大读者批评指正。
作 者 ?
2013年1月
第1章 汇编语言基础知识 1
1.1 微型计算机概述 1
1.2 Intel公司微处理器简介 2
1.3 计算机语言及汇编语言特点 3
1.3.1 计算机语言概述 3
1.3.2 汇编语言的特点 5
1.4 程序可见寄存器组 5
1.5 存储器 9
1.5.1 基本概念 9
1.5.2 实模式存储器寻址 10
1.6 外部设备 11
习题 12
第2章 汇编语言源程序格式 13
2.1 汇编语言语句格式 13
2.1.1 汇编语言语句类型 13
2.1.2 汇编语言指令格式 13
2.2 伪指令 20
2.2.1 处理器选择伪指令 21
2.2.2 数据定义伪指令 21
2.2.3 模块命名和标题伪指令 24
2.2.4 程序结束伪指令 24
2.2.5 完整段定义伪指令 25
2.2.6 简化段定义伪指令 28
2.2.7 表达式赋值伪指令 29
2.2.8 定位伪指令 30
2.2.9 标号定义伪指令 32
2.3 汇编语言源程序基本框架 32
2.3.1 完整段定义框架 32
2.3.2 简化段定义框架 34
习题 35
第3章 8086/8088寻址方式及指令系统 36
3.1 8086/8088寻址方式 36
3.1.1 数据寻址方式 36
3.1.2 程序转移寻址方式 42
3.2 8086/8088指令系统 44
3.2.1 数据传送指令 44
3.2.2 算术运算指令 49
3.2.3 逻辑操作指令 55
3.2.4 串处理指令 59
3.2.5 控制转移指令 65
3.2.6 处理器控制指令 72
习题 74
第4章 顺序、分支与循环程序设计 78
4.1 顺序程序设计 78
4.2 分支程序设计 80
4.2.1 分支结构 80
4.2.2 用分支指令实现分支结构程序 80
4.3 循环程序设计 83
4.3.1 循环结构 83
4.3.2 单循环程序设计 85
4.3.3 多重循环程序设计 89
习题 92
第5章 子程序及宏指令设计 93
5.1 子程序设计方法 93
5.1.1 子程序定义 93
5.1.2 寄存器内容的保存及恢复 94
5.1.3 子程序的调用及返回 95
5.1.4 子程序的参数传递 95
5.1.5 子程序嵌套 101
5.2 模块化程序设计 102
5.2.1 模块划分 102
5.2.2 源程序文件包含的伪指令 102
5.2.3 模块间的连接 103
5.3 宏汇编 104
5.3.1 宏定义、宏调用和宏展开 104
5.3.2 宏定义和宏调用中的参数 106
5.3.3 宏指令的嵌套 108
5.3.4 宏汇编中的伪指令 110
5.3.5 重复汇编 112
5.3.6 条件汇编 113
习题 114
第6章 32位指令系统及程序设计 116
6.1 32位微处理器工作模式 116
6.2 32位指令的运行环境 117
6.2.1 寄存器组 117
6.2.2 80386保护模式下的存储管理 119
6.3 32位80x86 CPU的寻址方式 119
6.4 32位微处理器指令 120
6.4.1 使用32位80x86指令的注意事项 120
6.4.2 80386新增指令 121
6.4.3 80486新增指令 123
6.4.4 Pentium新增指令 124
6.4.5 Pentium Pro新增指令 125
6.4.6 MMX指令 125
6.4.7 SIMD指令 130
6.5 程序设计举例 132
6.5.1 基于32位指令的实模式程序设计 132
6.5.2 基于MMX指令的实模式程序设计 133
6.5.3 保护模式下的程序设计 135
习题 138
第7章 综合程序设计 139
7.1 加密程序设计举例 139
7.2 反跟踪程序设计举例 141
7.3 磁盘文件存取程序设计举例 144
7.4 内存驻留程序设计 158
习题 161
第8章 输入输出与中断控制 162
8.1 输入输出接口概述 162
8.1.1 输入输出接口 162
8.1.2 主机与外设之间交换数据的方式 163
8.2 程序控制方式下的输入输出程序设计 164
8.2.1 无条件传送方式 164
8.2.2 程序查询方式 168
8.3 中断传送方式 170
8.3.1 中断系统 171
8.3.2 中断优先级与中断嵌套 174
8.3.3 中断处理程序 174
8.4 DOS与BIOS中断 177
8.4.1 DOS系统功能调用 177
8.4.2 BIOS功能调用 180
习题 188
第9章 C语言与汇编语言混合编程 190
9.1 嵌入式汇编 190
9.1.1 嵌入式汇编程序中汇编指令格式 190
9.1.2 嵌入式汇编程序设计 191
9.1.3 编译链接的方法 195
9.2 C语言调用汇编模块 195
9.2.1 C语言调用汇编模块编程规则 196
9.2.2 C语言调用汇编模块的编译链接方法 199
9.3 汇编语言引用C语言函数 200
习题 201
第10章 汇编语言程序实验工具软件介绍 203
10.1 汇编语言实验上机步骤 203
10.2 常用调试程序Debug 205
10.2.1 Debug的主要特点 205
10.2.2 Debug的启动 205
10.2.3 Debug的命令 205
10.2.4 Debug中的命令介绍 206
10.2.5 Debug程序的应用举例 213
10.3 集成开发环境PWB 214
10.3.1 PWB的安装 214
10.3.2 PWB的运行和退出 215
10.3.3 PWB主菜单 215
10.3.4 PWB开发环境的设置 216
10.3.5 PWB的应用 216
10.4 源代码级调试工具软件CodeView 216
附录A DOS功能调用(INT 21H)一览表 218
附录B BIOS中断调用表(INT N) 223
参考文献 227
??
??
??
??
VIII
汇编语言程序设计(第2版)
VII