第一章 Pentium微处理器 1
1.1 计算机系统组成 1
1.1.1 硬件 1
1.1.2 软件 2
1.2 Intel系列CPU简介 3
1.2.1 Intel系列CPU发展简史 3
1.2.2 Pentium家族的其他成员 6
1.3 Pentium微处理器的基本结构 6
1.4 Pentium寄存器 9
1.4.1 基本结构寄存器 9
1.4.2 系统级寄存器 14
1.4.3 调试寄存器 16
1.4.4 模型专用寄存器 17
1.4.5 浮点处理部件 18
本章小结 22
习题一 22
第二章 Pentium微处理器指令系统 23
2.1 Pentium汇编语言汇编指令格式 23
2.2 Pentium微处理器内部指令格式 23
2.2.1 前缀 24
2.2.2 操作码 25
2.2.3 寻址方式 26
2.2.4 位(偏)移量及立即数 29
2.3 寻址方式 29
2.3.1 数据的寻址方式 29
2.3.2 转移地址的寻址方式 34
2.3.3 堆栈地址寻址 35
2.4 指令系统 36
2.4.1 数据传送指令 36
2.4.2 算术运算指令 41
2.4.3 BCD码调整指令 45
2.4.4 逻辑运算指令 48
2.4.5 位处理指令 48
2.4.6 控制转移指令 51
2.4.7 条件设置指令 57
2.4.8 串操作指令 58
2.4.9 处理器控制指令 62
本章小结 66
习题二 66
3.1.1 程序 71
3.1 Pentium汇编程序结构 71
第三章 Pentium宏汇编 71
3.1.2 模块 72
3.1.3 段 72
3.1.4 语句 74
3.2 数据定义——数据段 75
3.2.1 标识符 75
3.2.2 数 76
3.2.3 字符串 77
3.2.4 符号常量 77
3.2.5 变量及变量说明 78
3.2.6 表达式 79
3.2.7 数组 86
3.4.1 段寄存器初值 87
3.4 指令代码——代码段 87
3.3 堆栈定义——栈段 87
3.4.2 程序定位 89
3.4.3 标号 90
3.4.4 程序启动地址和结束地址 92
3.4.5 处理器选择 92
3.5 段分组 93
3.6 简化段 94
3.6.1 存储模式 94
3.6.2 段定义 95
3.6.3 预定义符号 97
3.6.4 两点说明 98
3.6.5 实例 98
3.7 汇编语言程序上机过程 100
3.7.1 用EDIT建立.ASM文件 101
3.7.2 使用MASM产生.OBJ等文件 102
3.7.3 用LINK程序产生.EXE文件 105
3.8 可执行程序 107
3.8.1 .COM文件 107
3.8.2 .EXE文件 109
本章小结 111
习题三 111
第四章 汇编语言程序设计方法 116
4.1 顺序程序设计 116
4.2 分支程序设计 118
4.2.1 IF语句 118
4.2.2 CASE语句 119
4.3 循环程序设计 123
4.3.1 WHILE循环 124
4.3.2 REPEAT_UNTIL循环 127
4.3.3 FOR循环 129
4.3.4 循环嵌套 132
4.3.5 循环结构的限制 138
本章小结 140
习题四 140
第五章 子程序和宏 142
5.1 带子程序的程序 142
5.2 变量分配 145
5.2.1 在子程序代码段内分配 146
5.2.2 在数据段的公共数据区分配 146
5.2.3 在栈中分配 147
5.3.1 值参数与变量参数 148
5.3 参数传递 148
5.3.2 传送方式 149
5.3.3 子程序作参数 162
5.4 递归 163
5.5 栈的使用技巧与子程序的限制 170
5.6 可重入性 171
5.7 宏 173
5.7.1 宏定义和扩展 174
5.7.2 参数 175
5.7.3 算子 176
5.7.4 宏嵌套 177
5.7.5 涉及宏的伪指令 179
5.8.1 子程序库 182
5.8 库 182
5.8.3 宏与子程序的区别 183
5.8.2 宏库 183
本章小结 184
习题五 184
第六章 输入/输出程序设计 189
6.1 I/O寻址概述 189
6.1.1 I/O设备及其数据传送方式 189
6.1.2 I/O接口和I/O端口地址 190
6.2 I/O指令 191
6.2.1 寄存器I/O指令 191
6.2.2 块I/O指令 192
6.3 简单I/O程序设计 192
6.4.2 异步串行通信接口 195
6.4 查询方式I/O程序 195
6.4.1 异步串行通信介绍 195
6.4.3 I/O宏指令和端口定义 199
6.4.4 查询方式的串行I/O程序 200
本章小结 205
习题六 205
第七章 异常和中断 207
7.1 概述 207
7.1.1 异常和中断的概念 207
7.1.2 异常和中断的类型 207
7.1.3 向量号和中断向量表 208
7.2 异常和中断处理程序设计 210
7.2.1 异常和中断处理程序的一般结构 210
7.1.4 优先级 210
7.2.2 编写异常和中断处理程序 211
7.2.3 用户自行安排中断程序处理程序 214
7.3 BIOS中断程序设计 215
7.3.1 概述 215
7.3.2 利用BIOS中断控制键盘 216
7.3.3 利用BIOS中断控制显示 221
7.3.4 利用BIOS中断进行磁盘读写 224
7.4 DOS功能调用 229
7.4.1 键盘功能 229
7.4.2 显示功能 231
本章小结 231
习题七 231
8.1 DOS文件系统概述 233
第八章 文件系统 233
8.2 文件句柄方式操作 235
8.3 基本文件服务功能 236
8.3.1 建立文件 236
8.3.2 打开文件 238
8.3.3 关闭文件 238
8.3.4 读文件 238
8.3.5 写文件 240
8.3.6 文件指针操作 240
8.4 文件管理功能 241
8.4.1 删除文件 241
8.4.2 文件更名 241
8.4.3 取出/设置文件属性 242
8.4.4 文件查找 243
本章小结 245
习题八 245
第九章 浮点运算 246
9.1 数字协处理器和IEEE浮点数 246
9.1.1 IEEE浮点标准 247
9.1.2 其他数据格式 248
9.2 数字协处理器编程初步 249
9.2.1 寄存器结构 249
9.2.2 简单编程举例 249
9.2.3 整型数操作 251
9.3 浮点运算状态 252
9.4 浮点运算指令一览 254
习题九 258
本章小结 258
第十章 保护模式 259
10.1 Pentium指令系统的发展 259
10.2 保护模式简介 262
10.3 存储管理机制 262
10.4 保护机制 266
10.4.1 任务保护 267
10.4.2 输入/输出指令保护 268
10.5 中断与异常 268
10.6 操作系统指令 271
10.7 工作模式与模式切换 275
本章小结 277
习题十 277
11.1.1 结构的定义 278
第十一章 汇编语言高级技术 278
11.1 结构 278
11.1.2 结构变量的定义 279
11.1.3 结构变量及其字段的访问 279
11.2 记录 281
11.2.1 记录的定义 281
11.2.2 记录变量的定义及初始化 282
11.2.3 涉及记录的运算 282
11.2.4 访问记录或字段 282
11.3 条件汇编与重复汇编 283
11.3.1 条件汇编 283
11.3.2 重复汇编 284
11.4.1 模块化程序设计 286
11.4 多模块程序设计 286
11.4.2 模块的连接 288
11.4.3 模块之间的参数传送 290
11.5 汇编语言与高级语言的连接 293
11.5.1 概述 293
11.5.2 C语言程序与汇编语言程序连接时的系统规则 295
11.5.3 连接方法 297
本章小结 299
附录 300
附录一 ACSII字符集 300
附录二 键盘扫描码表 302
附录三 BIOS中断 303
附录四 DOS中断INT21H功能调用 308
参考文献 314