目录 1
第一章 概述 1
1.1 计算机语言 1
1.1.1 机器语言 1
1.1.2 汇编语言 2
1.1.3 通用语言 3
1.2 计算机系统 4
1.2.1 硬件子系统 4
1.2.2 软件子系统 6
习题 7
第二章 8086/8088微处理器的结构 9
2.1 8086/8088 CPU的结构 9
2.2 8086/8088寄存器和标志 10
2.2.1 通用寄存器 10
2.2.2 指针和变址寄存器 11
2.2.4 标志位 12
2.2.3 段寄存器 12
2.3 存储器 13
2.3.1 存储器的分段结构 13
2.3.2 实际地址的产生 14
2.4 寻址方式 15
2.4.1 操作数的种类 15
2.4.2 寻址方式 15
2.4.4 有效地址的计算时间 18
2.4.3 段更换和段跨越 18
2.5 8086/8088指令系统 19
习题 19
第三章 汇编语言 21
3.1 汇编语言的语句格式 21
3.1.1 字符集 21
3.1.2 汇编语句格式 21
3.2 汇编语言中数据的表示方法 24
3.2.1 数据在机内的表示方法和范围 24
3.3.1 算术运算符 26
3.3 运算符号 26
3.2.2 汇编语言中数据书写形式 26
3.3.2 逻辑运算符 27
3.3.3 关系运算符 27
3.3.4 分析算符 27
3.3.5 组合算符 29
3.3.6 字节分离算符 29
3.3.7 记录专用算符 29
3.4 伪指令(汇编命令) 30
3.4.1 符号定义伪指令 30
3.4.2 数据定义伪指令 31
3.4.3 记录定义和结构定义伪指令 34
3.4.4 段定义伪指令 36
3.4.5 过程(子程序)定义伪指令 39
3.4.6 程序段连接伪指令 40
3.4.7 其它伪指令 42
习题 43
4.1 程序设计的步骤 45
第四章 顺序结构程序 45
4.2 流程图的应用 46
4.3 程序的基本控制结构 47
4.4 数据传送指令 48
4.5 算术运算指令 52
4.5.1 加法运算指令 52
4.5.2 减法运算指令 53
4.5.3 乘法运算指令 54
4.5.4 除法运算指令 55
4.6 逻辑操作指令 57
4.7 移位操作指令 58
4.8 状态标志位操作指令 59
4.9 简单的I/O功能调用 59
4.10 顺序结构程序举例 60
习题 67
第五章 分支结构程序 70
5.1 分支结构程序的引出 70
5.2.1 无条件转移指令 71
5.2 转移指令 71
5.2.2 条件转移指令 73
5.3 标志寄存器 73
5.4 分支结构程序设计 77
5.5 多分支结构程序的设计 82
习题 86
第六章 循环结构程序 89
6.1 数据串操作指令 89
6.2 重复控制指令 93
6.3 循环结构程序的引出 94
6.4 循环结构程序的组成 96
6.5 循环程序的控制方法 97
6.6 单重循环程序举例 101
6.7 多重循环程序 106
6.8 循环程序的效率 109
习题 111
7.1 调用和返回指令 115
第七章 子程序 115
7.2 子程序的引出 117
7.2.1 子程序的调用与返回 118
7.2.2 主程序与子程序间信息交换 118
7.2.3 保存现场和恢复现场 124
7.2.4 子程序说明文件的编制 124
7.3 子程序设计 125
7.4 子程序嵌套 130
7.5 递归子程序 133
7.6 可重入子程序 136
7.7 程序的连接 137
习题 140
第八章 数值运算 144
8.1 多字节加减运算 144
8.2 多字节整数乘除运算 145
8.2.1 一般整数乘法运算 145
8.2.2 多字节整数乘法运算 146
8.2.3 一般整数除法运算 149
8.2.4 多字节整数除法运算 151
8.3 BCD码运算 156
8.3.1 BCD码运算规则 156
8.3.2 BCD码运算调整指令 157
8.3.3 非组合的BCD码运算 158
8.3.4 组合的BCD码加减运算 159
83.5 BCD码数据的符号表示方法及运算方法 160
8.4 浮点数据的表示方法 161
8.5 浮点数加减运算 162
8.5.1 浮点数加法 162
8.5.2 浮点数减法 166
8.6 浮点数乘除运算 166
8.6.1 浮点数乘法 166
8.6.2 浮点数除法 167
习题 167
9.1 十进制数的ASCII码串转换为二进制定点数 169
第九章 代码转换 169
9.2 二进制定点数转换为十进制数的ASCII码串 171
9.3 十进制数的ASCII码串转换为浮点数 174
9.3.1 普通十进制数的ASCII码串转换为浮点数 174
9.3.2 科学表示法的ASCII码串转换为浮点数 177
9.4 浮点数据转为十进制数的ASCII码串 178
9.4.1 浮点数转换为普通十进制数的ASCII码串 178
习题 179
9.4.2 浮点数转换为科学表示法的ASCII码串 179
第十章 列表处理 181
10.1 概述 181
10.1.1 列表的存储结构 181
10.1.2 自定义数据结构 182
10.1.3 列表的种类及其运算 186
10.2 列表的插入与删除 187
10.2.1 插入 187
10.2.2 删除 188
10.3.1 交换排序 190
10.3 排序 190
10.3.2 插入排序 193
10.3.3 快速排序 195
10.4 检索 198
10.4.1 顺序检索法 198
10.4.2 折半检索 200
习题 202
第十一章 输入输出程序设计 204
11.1 输入输出指令 204
11.2 CPU与外设间的数据传送 205
11.2.1 输入输出接口 205
11.2.2 CPU与外设之间的接口信号 205
11.2.3 CPU与外设之间的数据传送方式 206
11.3 彩色显示器 207
11.3.1 彩色/图形适配器 208
11.3.2 彩色显示器编程 213
11.4 打印机编程 221
11.5 并行接口 223
11.5.1 8255A的结构及其工作方式 224
11.5.2 8255A在IBM PC上的用法 226
11.6 8253可编程定时器/计数器 227
11.6.1 概述 227
11.6.2 8253的基本功能和内部结构 228
11.6.3 8253的工作方式 229
11.6.4 8253的应用 230
习题 233
12.1.1 中断指令 234
第十二章 中断程序设计 234
12.1 中断、外同步和空操作指令 234
12.1.2 外同步指令和空操作指令 235
12.2 中断系统概述 236
12.2.1 中断请求与中断源 236
12.2.2 中断系统的功能 237
12.2.3 中断响应 237
12.3.1 外部中断 238
12.3 8086/8088的中断系统 238
12.3.2 内部中断 240
12.3.3 中断向量表 241
12.4 中断程序设计 242
12.4.1 主程序设计 242
12.4.2 中断服务程序设计 242
12.4.3 中断服务程序设计中应注意的几个问题 243
12.5 8259A中断控制器及其程序设计 243
12.5.1 8259A的结构 244
12.5.2 8259A的程序设计 245
12.5.3 8259A在IBM PC系列机中的应用 248
12.6 IBM PC的BIOS调用及DOS功能调用 250
12.6.1 BIOS调用 250
12.6.2 DOS中断和功能调用 252
12.7 键盘中断程序设计 256
12.8 打印机中断程序设计 259
12.9.1 异步串行通信简介 261
12.9 异步串行通信程序设计 261
12.9.2 异步串行通信适配器 262
12.9.3 8250的程序设计 263
12.9.4 通信程序设计 266
习题 278
第十三章 磁盘操作及文件管理 280
13.1 磁盘结构 280
13.2 磁盘上的数据组织 281
13.2.2 文件分配表(FAT) 282
13.2.1 保留区(引导记录) 282
13.2.3 文件目录表(FDT) 285
13.3 磁盘I/O参数表及其用法 286
13.3.1 磁盘I/O参数表(BPB) 286
13.3.2 BPB表的用法 286
13.4 磁盘基数表及其用法 288
13.4.1 磁盘基数表 288
13.4.2 软盘基数表的用法 289
13.5 DOS文件管理 296
13.5.1 DOS文件结构 297
13.5.2 文件控制块FCB及其用法 297
13.5.3 DOS文件句柄功能及其用法 299
习题 301
第十四章 汉字处理技术 302
14.1 汉字的机内表示 302
14.2 汉字的输入 303
14.2.1 区位码和国标码 303
14.2.2 拼音码 306
14.2.3 拼形码 310
14.2.4 形音码 312
14.3 汉字的显示 313
14.3.1 汉字的字模 313
11.3.2 汉字显示的实现 314
14.4 汉字的打印 319
14.4.1 汉字打印机 319
14.4.2 汉字打印的实现 320
习题 325
第十五章 条件汇编与宏指令 327
15.1 条件汇编伪操作 327
15.2 宏伪操作 329
15.2.1 宏定义与宏结束伪操作命令 329
15.2.2 参数的使用 330
15.2.3 宏中的标号处理 333
15.2.4 宏嵌套 335
15.2.5 宏与子程序的区别 338
15.3 重复块宏操作命令 339
15.4 特殊宏操作命令 341
习题 342
第十六章 8087/80287/80387程序设计 344
16.1 概述 344
16.2 8087/80287/80387的逻辑结构及运行 345
16.2.1 8087/80287/80387的逻辑结构 345
16.2.2 8087/80287/80387的运行 348
16.3 数据类型及格式 350
16.4 8087/80287/80387的指令系统 351
16.4.1 数据传送指令 352
16.4.2 算术运算指令 353
16.4.3 比较指令 356
16.4.4 函数指令 357
16.4.5 常数指令 359
16.4.6 处理器控制指令 359
16.5 8087/80287/80387程序设计举例 361
16.5.1 整数运算 362
16.5.2 实数运算 368
习题 372
第十七章 80286与80386系统 373
17.1 80286 CPU结构 373
17.2.3 保护虚地址方式的存储管理 375
17.2.2 有关特权的概念 375
17.2.1 80286的操作方式 375
17.2 80286系统存储器管理 375
17.3 特权级 378
17.4 80286的中断系统 379
17.5 80286增强与扩充的指令 380
17.5.1 增强的指令 380
17.5.2 扩充的指令 381
17.6 80386 CPU结构 384
17.7 80386存储器管理 386
17.8 80386的寻址方式 388
17.9 80386扩充的指令 389
习题 392
附录A 8086/8088指令系统 393
附录B 伪指令 400
附录C BIOS调用说明 401
附录D DOS功能调用说明 405
附录E IBM PC的键盘输入码和CRT显示码 409
参考文献 411