第1章 微型计算机硬件系统 1
1.1 微处理器 1
1.1.1 微处理器概述 1
1.1.2 80x86系列CPU发展 2
1.1.3 CPU的微结构 5
1.1.4 微处理器性能指标 6
1.1.5 微处理器软件特性 8
1.1.6 多核技术 11
1.2 主板 13
1.2.1 主板结构 13
1.2.2 芯片组 14
1.2.3 主板插槽 18
1.2.4 外部接口 21
1.3 内存 24
1.3.1 基本概念 24
1.3.2 存储器访问 27
1.4 扩展卡 29
习题1 30
第2章 微处理器管理模式 31
2.1 微处理器的基本结构 31
2.2 CPU工作模式 32
2.2.1 实模式 33
2.2.2 保护模式 33
2.2.3 虚拟8086模式 34
2.2.4 64位CPU的工作模式 34
2.3 寄存器 35
2.3.1 程序可见寄存器 35
2.3.2 保护模式下的寄存器 39
2.4 内存管理 44
2.4.1 实模式下分段管理 44
2.4.2 保护模式下分段管理 45
2.4.3 页式内存管理 51
2.5 任务 56
2.5.1 任务执行环境 57
2.5.2 任务状态段 57
2.5.3 门 60
2.5.4 任务切换 62
2.6 保护 66
2.6.1 数据访问保护 66
2.6.2 对程序的保护 68
2.6.3 输入输出保护 71
习题2 73
第3章 指令系统 76
3.1 数据寻址方式 76
3.1.1 CPU操作数寻址 76
3.1.2 存储器操作数寻址 77
3.2 数据运算指令 81
3.2.1 数据传送指令 81
3.2.2 算术运算指令 86
3.2.3 位运算指令 95
3.3 程序控制指令 98
3.3.1 转移指令的寻址方式 98
3.3.2 转移指令 102
3.3.3 循环指令 105
3.3.4 子程序调用与返回指令 107
3.3.5 中断调用与返回指令 109
3.4 处理机控制指令 110
3.4.1 标志操作指令 111
3.4.2 常用处理机控制指令 111
3.5 块操作指令 111
3.5.1 块操作指令格式 111
3.5.2 块操作指令示例 113
习题3 115
第4章 汇编语言程序开发 118
4.1 汇编语言基本知识 118
4.1.1 汇编语言概述 118
4.1.2 汇编语言编程环境 119
4.1.3 汇编语言语句格式 121
4.2 常用伪指令 121
4.2.1 数据定义伪指令 121
4.2.2 符号定义伪指令 123
4.2.3 操作符伪指令 124
4.2.4 框架定义伪指令 126
4.3 汇编源程序格式 128
4.3.1 用户界面 128
4.3.2 控制台界面的汇编源程序 129
4.3.3 Windows界面的汇编源程序 135
4.3.4 输入/输出有关的Windows API函数 136
4.4 分支与循环程序设计 139
4.4.1 分支程序设计 139
4.4.2 循环程序设计 146
4.5 浮点运算 152
4.5.1 浮点数的表示与存储 152
4.5.2 浮点寄存器 154
4.5.3 浮点指令及其编程 158
4.6 程序优化 163
4.6.1 运行时间优化 163
4.6.2 占用空间优化 167
习题4 167
第5章 子程序设计 169
5.1 子程序基本知识 169
5.1.1 子程序定义 169
5.1.2 堆栈 170
5.1.3 子程序的返回地址 172
5.2 参数传递 173
5.2.1 C语言函数的参数传递方式 174
5.2.2 汇编语言子程序的参数传递方式 176
5.2.3 带参数子程序的调用 177
5.2.4 子程序中的局部变量 179
5.3 子程序的特殊应用 181
5.3.1 子程序嵌套 181
5.3.2 子程序递归 181
5.3.3 缓冲区溢出 182
5.4 模块化程序设计 184
5.4.1 模块化设计基本概念 184
5.4.2 模块间的通信 185
5.5 C语言模块的反汇编 187
5.5.1 基本框架 187
5.5.2 选择结构 188
5.5.3 循环结构 189
5.5.4 变量定义 190
5.5.5 指针 190
5.5.6 函数 191
5.6 C语言和汇编语言的混合编程 193
5.6.1 直接嵌入 193
5.6.2 C程序调用汇编子程序 193
5.6.3 汇编调用C函数 196
5.6.4 C+++与汇编的联合编程 197
习题5 197
第6章 存储系统与技术 198
6.1 高速缓冲存储器 198
6.1.1 Cache工作原理 198
6.1.2 Cache一致性协议 201
6.2 内部存储器 203
6.2.1 内存分类 203
6.2.2 主要技术指标和参数 204
6.2.3 内存模组 205
6.3 辅助存储器 212
6.3.1 硬盘概述 213
6.3.2 HDD原理和主要技术指标 213
6.3.3 ATAPI标准 214
6.3.4 ATA接口的编程模型 218
6.3.5 ATA设备寄存器 221
6.3.6 硬盘读写方式 226
6.3.7 串行ATA 233
6.3.8 固态硬盘 235
习题6 237
第7章 总线技术 238
7.1 总线概述 238
7.1.1 总线的分类 238
7.1.2 总线技术指标 239
7.2 PCI总线 240
7.2.1 PCI总线特点 240
7.2.2 PCI总线的体系结构 240
7.2.3 PCI总线引脚信号定义 241
7.2.4 PCI总线命令 244
7.2.5 PCI总线协议 246
7.2.6 PCI总线数据传输过程 248
7.2.7 总线仲裁 250
7.2.8 PCI总线配置 251
7.3 PCI-E总线 253
7.3.1 PCI-E概述 253
7.3.2 PCI-E的协议层次 254
7.4 USB总线 255
7.4.1 USB的起源和发展 255
7.4.2 USB接口的硬件特性 258
7.4.3 USB OTG技术及其扩展 264
7.4.4 USB通信协议 269
7.5 I2C总线 273
7.5.1 I2C概述 273
7.5.2 I2C接口访问EEPROM 277
习题7 278
第8章 接口技术 279
8.1 串行接口及应用 279
8.1.1 串行通信概述 279
8.1.2 可编程串行通信接口 288
8.2 定时与计数技术 303
8.2.1 定时与计数概述 303
8.2.2 可编程定时器芯片 304
8.2.3 微机系统中的定时 319
8.3 红外 323
8.3.1 红外技术概述 323
8.3.2 IrDA协议分析 324
8.3.3 IrDA建立连接的过程 325
8.4 Wi-Fi 326
8.4.1 WLAN的组成 326
8.4.2 WLAN的结构 327
8.4.3 IEEE 802.11 协议 328
习题8 330
第9章 中断技术 332
9.1 中断概述 332
9.1.1 中断基本原理 332
9.1.2 中断和异常 332
9.1.3 中断服务程序 336
9.2 实模式的中断处理 336
9.2.1 中断向量表 336
9.2.2 中断处理过程 337
9.2.3 写中断向量表 337
9.3 保护模式的中断处理 338
9.3.1 中断描述符表 338
9.3.2 中断和异常的处理过程 339
9.4 可编程中断控制器8259 344
9.4.1 内部结构 344
9.4.2 8259中断过程 346
9.4.3 8259的级联 347
9.4.4 8259的编程 348
9.4.5 8259在PC中的应用 356
9.5 高级可编程中断控制器 357
9.5.1 APIC概述 357
9.5.2 LAPIC 358
9.5.3 IO APIC 365
习题9 367
附录 Visual Studio 2017编写汇编语言程序步骤 369
参考文献 377