第一章80286的概况 1
1.1 从8086到80286 1
1.1.1 16位微处理器的历史 1
1.1.2 80286的必要性 1
目 录 1
1.2 微型机的构成 3
1.2.1 微型机的基本构成 3
1.2.2 总线 3
1.3 总线周期 4
1.3.1 总线周期的组成 4
1.3.2流水线寻址 5
1.3.3命令周期和等待周期 5
1.4.1 80286的内部部件 6
1.4 80286的内部构成 6
1.4.2寄存器构成 8
1.5 分段 10
1.5.1段和逻辑地址 10
1.5.2段寄存器的使用 10
1.6 实地址模式和保护模式 11
1.6.1 80286的工作模式 11
1.6.2实模式的逻辑地址 12
第二章 实模式的使用 15
2.1 80286的指令系统概述 15
2.1.1 按照处理器的级别进行分类 15
2.1.2按照特权级进行分类 16
2.2.1 存储器、I/O的地址指定 18
2.2.2传送命令 18
2.2 存储器、I/O的访问指令和传送指令 18
2.2.3堆栈的使用 20
2.2.4对I/O的数据传送 21
2.3 运算指令 23
2.4 控制指令 24
2.4.1 JMP指令 24
2.4.2 CALL指令和RET指令 25
2.4.3 间接的JMP、CALL指令 25
2.4.4条件JMP指令 26
2.5 数据串指令 28
2.5.1 数据串指令的操作和种类 28
2.5.2 带REP前缀的数据串指令 31
2.6 扩充指令 32
3.1.1 保护模式的逻辑地址 36
3.1 段高速缓存器 36
第三章 保护模式的使用 36
3.2 描述符表 38
3.2.1描述符表 38
3.2.2段选择器和描述符表 39
3.2.3描述符的定义 42
3.3 段寄存器的保护 45
3.3.1 DS、ES的保护 46
3.3.2 SS的保护 48
3.3.3 CS的保护 49
3.4 存储器访问的保护 50
3.5 虚拟存储 51
3.5.1 实存储器和虚拟存储器 51
3.5.2虚拟地址的实现 52
3.6 描述符表的处理 53
3.7 保护模式的初始设定 55
3.8 进入和退出保护模式的程序举例 57
第四章 特权级保护 66
4.1 特权级别 66
4.1.1 OS的保护 66
4.1.2 80286的特权保护 67
4.2 数据段、堆栈段的特权保护 69
4.3 代码段的特权保护 70
4.4 调用门转移 71
4.5 堆栈的保护 73
4.6 用RET指令的转移 74
4.7 符合代码段 75
4.8 “托罗衣木马”问题 76
4.8.1托罗衣木马 76
4.8.2 用ARPL指令解决“托罗衣木马”问题 77
4.9 I/O访问的保护 83
第五章 中断处理 84
5.1 中断原因 84
5.2 中断过程和IDT 85
5.2.1 中断处理和IDT 85
5.2.2 用中断门、陷阱门的控制转移 87
5.2.3中断处理的优先权 87
5.2.4 中断程序的定义 88
5.2.5 实模式的IDT 89
5.3 硬中断 89
5.4 软中断 91
5.4.1 INTO指令 91
5.4.2程序调试用中断 91
5.4.3 BOUND指令 93
5.6 实模式和保护模式下的中断类型 94
5.5 内部中断 94
第六章 任务与任务转换 98
6.1 单任务系统 98
6.2 多任务系统 98
6.2.1 多任务系统的工作原理 98
6.2.2 80286CPU的TSS 99
6.2.3TSS的定义 100
6.3 LDT与LDT描述符 100
6.4 任务的定义 102
6.5 任务转换 104
6.5.1任务转换的过程 104
6.5.2任务转换指令 104
6.6 任务门 106
6.5.3任务转换指令的用法 106
6.7 任务转换的例子 107
第七章 异常保护 113
7.1 异常保护 113
7.2 堆栈错 113
7.3 TSS错 115
7.4 P位错 116
7.5 一般的保护错 117
7.6 双重错 118
7.7 异常处理和再执行 118
第八章 80286CPU的硬件结构 120
8.1 CPU核心部分的组成 120
8.1.1 CPU的引脚及其功能 120
8.1.2时钟发生器82284 123
8.1.3总线控制器82288 128
8.2 I BM PC/AT机的CPU核心部分 131
8.3 系统板上I/O接口电路的选中控制 136
8.4 系统定时/计数器(T/C)电路 137
8.4.1定时/计数器的功用 137
8.4.2 8254—2的功能框图和编程控制 138
8.4.3 8254—2的工作方式 144
8.5 键盘控制器 148
8.5.1键盘控制器的功能 148
8.5.2键盘控制器的接口电路 154
8.6 键盘 157
8.6.1 电源接通时所完成的功能 158
8.6.2 由系统向键盘发送的命令 159
8.6.4键盘送到系统的命令码 161
8.6.3键盘输出 161
8.6.5时钟和数据信号 162
8.7 实时时钟/互补金属氧化物半导体(RT/CMOS)RAM 164
8.7.1实时时钟信息 166
8.7.2 CMOS RAM配置信息 168
8.8 IBMPC/AT机中的RT/CMOS RAM电路和I/O操作 171
第九章 系统中断 172
9.1 IBM PC/AT机的中断结构 172
9.2 8259A可编程中断控制器 172
9.2.1 8259A的逻辑功能 173
9.2.2中断的响应过程 176
9.2.3 8259A的编程 177
9.2.4在IBM PC/AT机中对8259A的初始化 185
9.2.5 8259A的操作方式 185
9.3 IBM PC/AT机中的中断控制逻辑 189
第十章 IBM PC/AT机中的DMA控制器 190
10.1 DMA控制器和页面寄存器的地址分配 191
10.1.1页面寄存器的口地址分配 191
10.1.2 DMA控制器的口地址分配 194
10.2 8237DMA控制器 196
10.2.1 8237的引脚功能 196
10.2.2 8237的内部寄存器 198
10.3 IBM PC/AT机中的DMA操作的应答过程 203
第十一章 存储器 205
11.1 存储器的结构 205
11.1.1基本的存储器结构 205
11.1.2使用特殊选通信号的存储器 205
11.1.3利用流水线进行存取 207
11.2.2 ROM 209
11.2 IBM PC/AT机中的存储器 209
11.2.1地址空间的分配 209
11.2.3 RAM 210
第十二章 数值运算协处理器80287 216
12.1 80287的体系结构 216
12.2 数值的表示方法 218
12.3 寄存器堆栈的基本用法 219
12.3.1寄存器堆栈的组成 219
12.3.2对寄存器堆栈的加载 220
12.3.3寄存器堆栈的存储 221
12.4 运算指令和函数指令 222
12.4.1基本的运算指令 222
12.4.2函数指令 224
12.5.1 80287与80286之间的连接方法 225
12.5 80287同80286的连接 225
12.5.2 80287的时钟 227
12.5.3 80287的指令执行 227
12.6 异常处理 228
12.7 对80287的支持环境 228
12.7.1 80286的支持 229
12.7.2任务转换中的80287 229
12.7.3 80287的仿真器 230
12.7.4 MSW的初始化 230
12.8 在IBM PC/AT机中的80287 231
第十三章 输入/输出(1/0)通道 234
13.1 总线的控制方式 234
13.1.1一般的总线控制方式 234
13 1.2局部总线控制方式 235
13.1.3系统总线控制方式 236
13.2 IBM PC/AT机的I/O通道 237
第十四章 IBM PC/AT机的系统BIOS 248
14.1 系统BIOS 248
14.1.1系统BIOS的用法 248
14.1.2 BIOS编程提示 253
14.2 键盘的编码和用法 254
14.2.1编码 254
14.2.2扩展编码 256
14.3 BIOS中的加电自检程序 259
第十五章 IBM PC/AT微机系统常见故障的诊断方法及维修 263
15.1 维修方法介绍 263
15.1.1微机系统的板级维修与片级维修 263
15.1.2板级维修 263
15.2.1诊断程序的结构和功能 266
15.2 诊断程序及其使用方法 266
15.2.2诊断程序中的功能诊断模块 267
15.2.3诊断程序的应用实例 268
15.2.4诊断程序中常用代码含义 272
15.3 片级维修方法简介 277
15.3.1 TTL芯片常见故障的性质和现象 278
15.3.2检查TTL芯片的几种常用方法 279
15.3.3TTL芯片的简单知识 283
15.4 系统板的片级维修 284
15.4.1系统板常见故障的简单分析 284
15.4.2从维修角度看系统板的结构 286
15.4.3 PC/AT机系统板的测试方法 288
15.4.4系统板内存部分的维修 294
15.4.5系统板中几个I/O接口模块的维修 300
15.4.6总线故障时的维修 307
15.4.7系统板维修小结 313
附图Ⅰ IBM PC/AT机电路图 314
附图ⅡSP/AT机电路图 338
附录Ⅰ段与段描述符小结 352
附录Ⅱ80286的指令代码 354
附表1 80286的指令代码 355
附表2 mod代码和意义 369
附表3 r/m代码和意义 370
附表4 reg和r/m表示寄存器时的意义 370
附表5 reg表示段寄存器时的代码 370
附注 指令的处理 371
附表6 80287协处理指令系统 387
参考资料 393