第1章 计算机的基本结构与操作 1
1.1 数的表示方法 1
1.1.1 数的位置表示法及各种进位制的数 1
1.1.2 各种进位制数的表示 2
1.2 无符号数的机器数表示与机器数运算 4
1.2.1 无符号数的机器数表示 4
1.2.2 无符号数相加与全加器 4
1.2.3 无符号数相减 6
1.2.4 状态标志与条件判断 7
1.3 有符号数的机器数表示与机器数运算 8
1.3.1 原码表示法 8
1.3.2 有符号数的补码 9
1.3.3 补码的运算 10
1.4 计算机中的运算电路 11
1.4.1 运算电路 11
1.4.2 总线结构 12
1.4.3 状态特征标志 13
1.5 计算机中字符与数的表示方法 16
1.5.1 数的定点表示与浮点表示 16
1.5.2 字符的编码 17
1.6 计算机硬件的基本组成 20
1.6.1 总线 21
1.6.2 CPU 21
1.6.3 接口通道与I/O设备 21
1.6.4 存储器 22
1.7 最简单的CPU 24
1.7.1 运算器 24
1.7.2 控制器 25
1.7.3 整机的工作 33
习题一 35
第2章 8086 CPU 38
2.1 CPU的技术发展 38
2.1.1 更多的内部寄存器和高速缓存 38
2.1.2 CPU内部的多总线 39
2.1.3 指令流水线式处理 39
2.1.4 更大的指令集 39
2.1.5 子程序和中断 40
2.2 8086的编程结构 40
2.2.1 总线接口单元(BIU) 40
2.2.2 执行单元(EU) 42
2.3 8086系统结构 44
2.3.1 两种工作方式 44
2.3.2 两种工作方式下相同的引脚定义 44
2.3.3 最小方式引脚定义和系统结构 47
2.3.4 最大方式引脚定义和系统结构 52
2.4 总线时序 56
2.4.1 系统的复位和启动操作 57
2.4.2 总线读/写操作周期时序 58
2.4.3 中断响应周期时序 62
2.4.4 总线请求和总线响应时序 62
2.5 存储器结构和I/O端口编址 65
2.5.1 数据存储格式 65
2.5.2 存储器的分段和物理地址的形成 65
2.5.3 I/O端口编址 67
习题二 68
第3章 指令系统 70
3.1 指令编码格式与寻址方式 70
3.1.1 指令编码格式 71
3.1.2 寻址方式 76
3.2 8086的指令系统 79
3.2.1 数据传送类指令 79
3.2.2 寻址与传送类指令举例 83
3.2.3 算术运算类指令 89
3.2.4 逻辑运算类指令 96
3.2.5 控制转移类指令 99
3.2.6 串操作指令 107
3.2.7 调用与返回指令以及堆栈操作 112
3.2.8 中断调用指令与中断返回指令以及DOS系统功能调用 115
3.2.9 控制类指令 116
习题三 118
第4章 汇编语言程序设计 120
4.1 概述 120
4.1.1 机器语言、汇编语言与高级语言 120
4.1.2 汇编语言程序的开发 121
4.2 汇编语言程序格式 123
4.2.1 汇编语言程序的实例 124
4.2.2 宏汇编所产生的列表文件 127
4.2.3 连接后所产生的可执行文件 128
4.3 宏汇编的基本语法 130
4.3.1 语句 130
4.3.2 常数 133
4.3.3 段定义 134
4.3.4 ASSUME语句 135
4.3.5 过程定义与结束语句 136
4.3.6 变量定义语句 137
4.3.7 属性操作符 139
4.3.8 宏指令 144
4.4 汇编语言程序设计的基本方法 145
4.4.1 汇编语言程序设计的基本步骤 145
4.4.2 程序结构 147
4.4.3 DOS系统功能调用 148
4.5 顺序程序 153
4.6 分支程序 156
4.7 循环程序 160
4.7.1 计数控制的循环程序 161
4.7.2 条件控制的循环程序 163
4.7.3 用逻辑尺方法控制的循环程序 165
4.7.4 多重循环 166
4.8 子程序 169
4.8.1 子程序的使用 169
4.8.2 参数传递 170
4.8.3 子程序嵌套与递归 174
4.9 模块化程序结构 177
4.9.1 模块的定义 178
4.9.2 模块间的交叉访问 178
4.9.3 多模块间的段连接 181
习题四 183
第5章 存储器 186
5.1 概述 186
5.1.1 存储器的分类及性能指标 186
5.1.2 主存储器 188
5.1.3 内存条 189
5.2 存储器芯片 191
5.2.1 数据与地址 192
5.2.2 RAM和ROM 193
5.2.3 RAM的基本存储电路 195
5.2.4 ROM的基本存储电路 197
5.2.5 芯片的内部组成 200
5.3 存储器子系统配置 202
5.3.1 位扩展 202
5.3.2 地址扩展 203
5.3.3 控制信号的连接 204
5.3.4 多字节数据 204
5.3.5 基本功能的扩展 206
5.3.6 冯·诺依曼结构和哈佛结构 206
5.4 8086系统中存储器的组织 207
5.4.1 存储器的分体结构 207
5.4.2 存储系统连接实例 208
5.4.3 8086的存储器管理 211
5.4.4 PC内存储空间的分配 214
5.5 高速缓冲存储器 217
5.5.1 存储器的层次结构 217
5.5.2 程序访问的局部性原理与cache的作用 219
5.5.3 cache的种类 220
5.6 虚拟存储器 222
5.6.1 虚拟存储技术 222
5.6.2 虚拟存储器的实现 223
5.6.3 Pentium/Windows个人计算机的内存管理 231
5.7 辅助存储器 232
5.7.1 磁盘 232
5.7.2 软盘 235
5.7.3 硬盘 235
5.7.4 光盘 236
习题五 237
第6章 I/O系统 238
6.1 I/O系统的组织 238
6.1.1 I/O信息的组成 238
6.1.2 I/O接口的作用 239
6.1.3 I/O端口寻址方式 240
6.2 I/O传送方式 241
6.2.1 程序控制的I/O方式 241
6.2.2 中断控制的I/O方式 245
6.2.3 直接存储器存取传送方式 246
6.2.4 可编程并行接口芯片8255A 246
6.2.5 键盘及其接口技术 254
6.2.6 发光二极管显示及其接口 258
6.3 中断技术 263
6.3.1 中断概述 263
6.3.2 中断源 264
6.3.3 中断分类 265
6.3.4 中断处理 265
6.3.5 中断服务子程序 266
6.3.6 中断优先权 267
6.4 80X86/Pentium中断系统 269
6.4.1 中断结构 269
6.4.2 中断向量表 271
6.4.3 中断响应过程 273
6.4.4 IBM PC/XT中断分配 275
6.4.5 高档微处理器中断系统 277
6.5 可编程中断控制器 278
6.5.1 8259A的内部结构和引脚 278
6.5.2 8259A的中断控制过程 281
6.5.3 8259A的中断触发方式 282
6.5.4 8259A的状态设定 282
6.5.5 8259A应用举例 286
6.6 中断程序设计 288
6.7 DMA控制器 293
6.7.1 DMA概述 293
6.7.2 8237A控制器 295
6.7.3 8237A的初始化编程 301
习题六 302
第7章 现代计算机系统 304
7.1 微处理器的逻辑结构 307
7.1.1 80486的寄存器组织 307
7.1.2 RISC介绍 311
7.2 虚拟存储器的实现机制 313
7.2.1 虚拟地址、物理地址和线性地址 314
7.2.2 存储器的分段管理 315
7.2.3 存储器的分页管理 322
7.3 8086 微处理器家族其他成员指令介绍 326
7.3.1 80286新指令 326
7.3.2 80386新指令 328
7.4 存储器管理技术 330
7.4.1 扩充内存和扩展内存的概念 331
7.4.2 扩充内存的实现 331
7.4.3 扩展内存的实现 333
7.4.4 Windows 95的内存管理 335
7.5 MCS-51单片机 335
7.5.1 内部结构 335
7.5.2 存储器 336
7.5.3 端口 340
7.5.4 专用寄存器 344
7.6 MCS-51的内部定时器与串行接口 346
7.6.1 定时器/计数器 346
7.6.2 串行接口 351
7.7 MCS-51的中断系统 355
7.8 凌阳16位单片机 360
7.8.1 技术性能与结构 360
7.8.2 主要特点 361
7.8.3 指令集 362
7.9 C8051 SOC单片机 363
7.9.1 CIP-51内核 364
7.9.2 存储器 365
7.9.3 JTAG调试和边界扫描 365
7.9.4 I/O系统 366
7.9.5 模拟数字转换系统 367
7.10 Nios嵌入式处理器 368
7.10.1 Nios CPU结构 369
7.10.2 Avalon交换结构总线 370
7.10.3 外围设备 372
7.10.4 片内调试模块 373
7.10.5 Nios开发环境 373
实验 379
实验一 软件基础(1) 379
实验二 指令系统(1) 385
实验三 指令系统(2) 389
实验四 软件基础(2) 394
实验五 汇编语言程序设计(1) 399
实验六 汇编语言程序设计(2) 403
实验七 汇编语言程序设计(3) 405
实验八 LED接口 409
实验九 键盘接口 413
实验十 中断处理 418
实验十一 定时显示装置设计 420
附录 422
附录1 80X86指令系统一览表 422
附录2 8086/8088指令系统编码格式 434
附录3 中断向量地址和DOS功能调用 445
附录4 M?rosoft MASM6.11和CodeView 451
参考文献 468