目 录 1
第一章80286的概况 1
1.1 8086到80286 1
1.1.1 16位微处理器的历史 1
1.1.2 80286的必要性 1
1.2 微型机的基本构成 3
1.3 总线周期 4
1.3.1总线周期的组成 4
1.3.2流水线寻址 4
1.4 寄存器构成 5
1.3.3命令周期和等待周期 5
1.5 分段 6
1.5.1段和逻辑地址 6
1.5.2段寄存器的使用 7
1.6 实地址模式和保护模式 7
第二章 实模式的使用 11
2.1 存储器、I/O的访问指令和传送指令 11
2.1.1存储器、I/O的地址指定 11
2.1.2传送命令 11
2.1.3堆栈的使用 13
2.1.4对I/O的数据传送 13
2.2 运算指令 14
2.3.1 JMP指令 15
2.3 控制指令 15
2.3.2 CALL指令和RET指令 16
2.3.3 间接的JMP、CA LL指令 16
2.3.4条件JMP指令 17
2.4 数据串指令 19
2.4.1数据串指令的操作和种类 19
2.4.2带REP前缀的数据串指令 21
2.5 扩充指令 22
第三章 保护模式的使用 26
3.1 段高速缓存器 26
3.1.1保护模式的逻辑地址 26
3.2.1描述符表 27
3.2 描述符表 27
3.2.2段选择器和描述符表 28
3.2.3描述符的定义 29
3.3 段寄存器的保护 30
3.3.1 DS、ES的保护 30
3.3.2 SS的保护 31
3.3.3 CS的保护 31
3.4 存储器访问的保护 33
3.5 虚拟存储 34
3.5.1实存储器和虚拟存储器 34
3.5.2虚拟地址的实现 34
3.6 描述符表的处理 36
3.7 保护模式的初始设定 37
4.1 特权级别 39
4.1.1 OS的保护 39
4.1.2 80286的特权保护 39
第四章 特权级保护 39
4.2 数据段、堆栈段的特权保护 40
4.3 代码段的特权保护 42
4.4 调用门转移 43
4.5 堆栈段的保护 44
4.6 用RET指令的转移 45
4.8 “托罗衣术马”问题 46
4.8.1托罗衣木马 46
4.7 符合代码段 46
4.8.2 用ARPL指令解决“托罗衣木马”问题 49
4.9 I/O访问的保护 51
第五章 中断处理 52
5.1 中断原因 52
5.2 中断过程和IDT 53
5.2.1 中断处理和IDT 53
5.2.2 用中断门、陷阱门的控制转移 54
5.2.3 中断处理的优先 55
5.2.4 中断程序的定义 55
5.2.5实模式IDT 55
5.3 硬中断 56
5.4.3 BOUND指令 58
5.4.2程序调试用中断 58
5.4 软中断 58
5.4.1 INTO指令 58
5.5 内部中断 60
第六章 任务与任务转换 62
6.1单任务系统 62
6.2 多任务系统 62
6.2.1多任务系统的工作原理 62
6.2.2 80286CPU的TSS 63
6.2.3TSS的定义 64
6.3 LDT与LDT描述符 65
6.4 任务的定义 66
6.5.2任务转换指令 67
6.5 任务转换 67
6.5.1 任务转换的过程 67
6.5.3任务转换指令的用法 68
6.6 任务门 69
6.7 任务转换的例子 70
第七章 异常保护 74
7.1 异常保护 74
7.2堆栈错 75
7.3TSS错 75
7.4 P位错 76
7.6 双重错 77
7.7 异常处理和再执行 77
7.5 一般的保护错 77
第八章80286CPU的硬件结构 79
8.1 CPU核心部分的组成 79
8.1.1 CPU的引脚及其功能 79
8.1.2时钟发生器82284 82
8.1.3总线控制器82288 86
8.2 IBM PC/A T机的CPU核心部分 89
8.3 系统板上I/O接口电路的选中控制 90
8.4 系统定时/计数器(T/C)电路 92
8.4.1定时/计数器的功用 92
8.4.2 8254—2的功能框图和编程控制 93
8.4.3 8254—2的工作方式 97
8.5 键盘控制器 98
8.5.1键盘控制器的功能 98
8.5.2键盘控制器的接口电路 102
8.6 键盘 105
8.6.1 电源接通时所完成的功能 106
8.6.2由系统向键盘发送的命令 106
8.6.3键盘输出 109
8.6.4键盘送到系统的命令码 109
8.6.5时钟和数据信号 110
8.7 实时时钟/互补金属氧化物半导体 111
(RT/CMOS)RAM 111
8.7.1实时时钟信息 112
8.7.2 CMOSRAM配置信息 114
8.8 IBM PC/AT机中的RT/CMOS RAM电路和I/O操作 117
第九章 系统中断 119
9.1 IBM PC/AT机的中断结构 119
9.2 8259A可编程中断控制器 120
9.2.1 8259A的逻辑功能 120
9.2.2中断的响应过程 122
9.2.3 8259A的编程 123
9.2.4在IBM PC/AT机中对8259的初始化 130
9.2.58259A的操作方式 131
9.3 IBMPC/AT机中的中断控制逻辑 135
10.1 DMA控制器和页面寄存器的地址分配 136
第十章 IBM PC/A T机中的DMA控制器 136
10.1.1页面寄存器的口地址分配 137
10.1.2 DMA控制器的口地址分配 138
10.2 8237DMA控制器 139
10.2.1 8237的引脚功能 140
10.2.2 8237的内部寄存器 142
10.3 IBM PC/AT机中的DMA操作的应答过程 146
第十一章 存储器 148
11.1 存储器的结构 148
11.1.1基本的存储器结构 148
11.1.2使用特殊选通信号的存储器 149
11.1.3利用流水线进行存取 150
11.2 IBM PC/AT机中的存储器 150
11.2.1地址空间的分配 151
11.2.2 ROM 152
11.2.3 RAM 152
第十二章 数值运算协处理器80287 157
12.1 80287的体系结构 157
1 2.2 数值的表示方法 159
12.3 寄存器堆栈的基本用法 159
12.3.1寄存器堆栈的组成 159
12.3.2对寄存器堆栈的加载 160
12.3.3寄存器堆栈的存储 161
12.4 运算指令和函数指令 162
12.4.1基本的运算指令 162
1 2.4.2函数指令 164
1 2.5 80287同80286的连接 165
1 2.5.1 80287与80286之间的连接方法 165
12.5.280287的时钟 167
12.5.3 80287的指令执行 168
12.6 异常处理 168
12.7 对80287的支持环境 169
12.7.180286的支持 169
12.7.2任务转换中的80287 169
12.7.3 80287的仿真器 170
12.7.4 MSW的初始化 170
12.8 在IBM PC/AT机中的80287 171
13.1.1一般的总线控制方式 174
13.1 总线的控制方式 174
第十三章 输入/输出(I/O)通道 174
13.1.2局部总线控制方式 175
13.1.3系统总线控制方式 175
13.2 IBM PC/AT机中的I/O通道 176
第十四章 IBM PC/AT机的系统BIOS 185
14.1 系统BIOS 185
14.1.1系统BIOS的用法 185
14.1.2 BIOS编程提示 190
14.2 键盘的编码和用法 191
14.2.1编码 191
14.2.2扩展编码 195
14.3BIOS中的加电自检程序 198
附图Ⅰ IBM PC/AT机电路图 203
附图Ⅱ SP/AT机电路图 227
附录Ⅰ 段与段描述符小结 241
附录Ⅱ 80286的指令代码 244
附表1 80286的指令代码 244
附表2 mod代码和意义 258
附表3 r/m代码和意义 259
附表4 reg和r/m表示寄存器时的意义 259
附表5 reg表示段寄存器时的意义 259
附注 指令的处理 260
附表6 80287协处理器指令系统 276
参考资料 282