第1章 基础知识 1
1.1 数据表示方法 1
1.1.1 数与数制 1
1.1.2 计算机中的数据表示 3
1.1.3 基本数据类型 6
1.2 汇编语言程序设计 6
1.2.1 程序设计语言 6
1.2.2 如何学习汇编语言 7
本章小结 8
习题一 9
第2章 微处理器的结构及存储器组成 10
2.1 80x86和Penlium微处理器的结构 10
2.1.1 80x86和Pentium微处理器的结构 10
2.1.2 80x86和Pentium微处理机的寄存器结构 14
2.2 存储器的组织 17
2.2.1 实模式存储器寻址 18
2.2.2 保护模式存储器寻址 22
本章小结 22
习题二 22
第3章 寻址方式和指令系统 24
3.1 寻址方式 24
3.1.1 数据寻址方式 24
3.1.2 程序存储器寻址方式 26
3.2 指令系统 27
3.2.1 数据传送指令 27
3.2.2 算术运算指令 32
3.2.3 十进制算术运算指令 37
3.2.4 逻辑运算指令 39
3.2.5 处理机控制指令 45
本章小结 46
习题三 46
第4章 伪指令及汇编语言源程序结构 48
4.1 汇编语言语句格式 48
4.1.1 语句种类 48
4.1.2 语句格式 49
4.2 伪指令 51
4.2.1 符号定义伪指令 51
4.2.2 数据定义伪指令 52
4.2.3 段定义伪指令 55
4.2.4 简化段定义伪指令 57
4.2.5 程序开始和结束伪指令 58
4.2.6 指令集选择伪指令 58
4.2.7 过程定义伪指令 59
4.3 汇编语言源程序结构 59
4.3.1 完整段定义结构 59
4.3.2 简化段定义结构 60
4.3.3 程序段前缀结构 60
4.3.4 COM文件结构 61
4.4 汇编语言的上机过程 62
4.4.1 概述 62
4.4.2 建立汇编语言的工作环境 62
4.4.3 用EDIT建立ASM文件 62
4.4.4 用MASM产生OBJ文件 64
4.4.5 用LINK产生EXE文件 66
4.4.6 程序的调试和执行 66
本章小结 68
习题四 68
第5章 基本结构程序设计 70
5.1 汇编语言程序设计概述 70
5.1.1 汇编语言程序设计的基本步骤 70
5.1.2 流程图的画法规定 71
5.2 顺序结构程序设计 71
5.3 分支程序设计 74
5.3.1 转移指令 74
5.3.2 双分支程序设计 77
5.3.3 多分支程序设计 79
5.4 循环结构程序设计 83
5.4.1 循环指令 83
5.4.2 循环程序的结构 86
5.4.3 循环程序设计方法 89
5.4.4 多重循环程序设计 92
5.4.5 串操作程序 97
5.4.6 循环程序设计举例 102
本章小结 106
习题五 107
第6章 子程序设计 108
6.1 子程序的概念与特性 108
6.2 子程序调用和返回指令 109
6.2.1 调用指令 109
6.2.2 返回指令 111
6.3 子程序的结构形式 112
6.3.1 子程序调用方法说明 112
6.3.2 现场保护和现场恢复 112
6.3.3 子程序的定义 113
6.4 子程序的设计和调用 113
6.4.1 子程序的设计 113
6.4.2 子程序的调用 115
6.5 子程序的参数传递方法 116
6.5.1 通过寄存器传递参数 116
6.5.2 通过堆栈传递参数 119
6.5.3 用存储单元传递参数 122
6.6 子程序的嵌套与递归 123
6.6.1 子程序的嵌套调用 123
6.6.2 子程序的递归调用 124
6.7 子程序设计举例 126
6.7.1 输入输出子程序 126
6.7.2 数制转换子程序 126
6.7.3 多位数运算子程序 131
本章小结 139
习题六 140
第7章 高级汇编技术 141
7.1 宏汇编 141
7.1.1 宏指令的定义、调用和展开 141
7.1.2 宏操作符 144
7.1.3 LOCAL伪指令 146
7.1.4 宏嵌套 147
7.1.5 宏程序库 150
7.1.6 宏指令与子程序的区别 150
7.2 重复汇编和条件汇编 150
7.2.1 重复汇编 150
7.2.2 条件汇编 152
本章小结 154
第8章 中断和输入输出程序设计 155
8.1 中断概述 155
8.1.1 中断与中断源 155
8.1.2 中断分类 155
8.1.3 中断向量表 157
8.1.4 中断过程 157
8.1.5 中断优先级 158
8.1.6 中断指令 158
8.2 中断处理程序设计 159
8.2.1 中断处理程序的编写 159
8.2.2 设置和获取中断向量 160
8.2.3 中断程序设计举例 161
8.3 BIOS中断调用 163
8.3.1 BIOS概述 163
8.3.2 BIOS中断调用方法 163
8.4 DOS功能调用 165
8.4.1 DOS功能调用概述 166
8.4.2 基本I/O功能调用 166
8.4.3 应用举例 168
8.5 磁盘文件管理 171
8.5.1 传统文件管理方式 171
8.5.2 扩充文件管理方式 174
8.6 输入输出程序设计 180
8.6.1 程序直接控制方式 180
8.6.2 程序中断方式 182
8.6.3 直接存储器访问(DMA)方式 184
8.6.4 通道传输方式 185
本章小结 185
习题八 186
第9章 汇编语言与高级语言的混合编程 187
9.1 调用协议 187
9.1.1 人口参数传递规则 187
9.1.2 返回值传递规则 188
9.1.3 寄存器保护规则 189
9.2 与C语言的接口 189
9.2.1 模块连接法 190
9.2.2 伪变量法 201
9.2.3 行内汇编法 202
9.3 与Pascal语言的接口 204
本章小结 211
习题九 212
第10章 保护模式程序设计 213
10.1 保护模式存储器管理 213
10.1.1 段寄存器与存储器分段管理 213
10.1.2 控制寄存器与存储器分页管理 219
10.1.3 调试寄存器与测试寄存器 224
10.2 描述符的类型 226
10.2.1 存储段描述符 226
10.2.2 系统段描述符 228
10.2.3 控制门描述符 230
10.3 保护模式下的系统类指令 231
10.3.1 实模式和保护模式任何特权级下都可执行的指令 232
10.3.2 实模式和保护模式0特权级下可以执行的指令 233
10.3.3 仅在保护模式下执行的指令 234
10.3.4 特权指令 237
10.4 控制转移与特权级变换 242
10.4.1 任务状态段 242
10.4.2 同一任务内特权级不变的段间转移 245
10.4.3 同一任务内特权级变换的段间转移 248
10.4.4 不同任务间的控制转移 250
10.5 中断/异常处理 259
10.5.1 中断 259
10.5.2 异常 259
10.5.3 中断/异常处理的控制转移 260
10.6 虚拟8086工作方式 263
10.6.1 虚拟8086方式 263
10.6.2 离开虚拟8086方式 264
10.6.3 进入虚拟8086方式 265
10.7 Windows下的保护模式编程 267
本章小结 275
习题十 277
附录A 动态调试程序DEBUG 278
附录B 80x86/Pentium指令系统 287
附录C 常用DOS功能调用 293
参考文献 299