《80386/486系统编程实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:吕晓庆编著
  • 出 版 社:杭州:浙江大学出版社
  • 出版年份:1993
  • ISBN:7308011623
  • 页数:278 页
图书介绍:

第一章 认识80386/486 1

1.1 Intel 86系列微处理器简介 1

目录 1

1.2 寄存器 2

1.2.1 通用寄存器 2

1.2.2 状态寄存器 2

1.2.3 段寄存器 5

1.3 寻址方式 5

1.4 指令格式与译码 5

1.5.1 任务 7

1.5 一些基本概念 7

1.5.2 优先级 8

1.5.3 三种程序执行模式 8

1.5.4 门 9

1.6 I/O空间 9

小结 10

第二章 实模式 11

2.1 32位与16位的差异 11

2.2 新指令 12

2.2.1 位测试指令(Bit Test Instruction) 12

2.2.2 位扫描指令(Bit Scan Instruction) 13

2.2.4 32位或64位数据转换指令 14

2.2.3 带符号或零扩展的数据移动指令 14

2.2.5 多字节移动指令 15

2.2.6 条件设置字节指令 16

2.3 中断与异常 17

2.4 RESET后的状态 17

小结 18

第三章 建立新的实验环境 19

3.1 新的实验环境 19

3.3 V86DOS系统的用户编程接口 20

3.2 V86DOS系统的使用说明 20

3.4 V86DOS系统的动态调试功能 22

3.5 编程和调试举例 24

小结 27

第四章 保护模式下的内存管理 28

4.1 段内存管理技术 28

4.1.1 三类地址的概念 28

4.1.2 段选择器与段描述符 29

4.1.3 地址转换算法 32

4.1.4 系统段描述符与门描述符 32

4.1.5 GDT和LDT及相关的寄存器 33

4.1.6 实验 34

【实验4.1】V86DOS系统所用的内存段描述符 34

【实验4.2】在32位保护模式下运行的程序 36

4.2 页内存管理技术 40

4.2.1 分页 41

4.2.2 页目录与页表 41

4.2.3 与分页相关的寄存器与指令 44

4.2.4 实验 46

【实验4.3】V86DOS系统中的分页 46

【实验4.4】保护模式下访问扩展内存 50

小结 56

第五章 保护模式下的异常与中断 57

5.1 异常 57

5.1.1 故障、自陷与中止 58

5.1.2 异常的错误代码 58

5.1.3 各种异常的定义 59

5.2 中断 62

5.3 中断描述符表及门描述符 63

5.3.1 IDT及IDT寄存器 63

5.4 调用中断或异常处理程序 64

5.3.2 IDT中的门描述符 64

5.5 实验 67

【实验5.1】观察V86DOS系统的IDT和IDTR 68

【实验5.2】段不出现异常的测试 69

【实验5.3】错误代码的EXT位 71

【实验5.4】一般性保护异常的测试 73

【实验5.5】页异常的测试 75

【实验5.6】故障的恢复 77

小结 79

6.1 任务状态段(TSS) 80

第六章 多任务 80

6.1.1 Link域…………………………………………………………………………………(81 )6.1.2 优先级堆栈指针 81

6.1.3 页表目录地址与局部描述符地址 82

6.1.4 寄存器保存区 82

6.1.5 TSS中的其它域 83

6.2 TSS描述符和任务寄存器 83

6.3 任务门描述符 85

6.4 实现任务切换的方法 86

6.5 实验 88

【实验6.1】观察V86DOS系统的任务机制 88

【实验6.2】两个分时任务的执行 90

【实验6.3】任务门的使用 106

小结 119

【实验6.4】任务切换中可能发生的异常 119

第七章 保护机制 120

7.1 保护的概念 120

7.2 类型检查 120

7.2.1 段的类型检查 121

7.4 对数据存取的限制 122

7.4.1 限制对数据的存取 122

7.3 界限检查 122

7.2.2 页的类型检查 122

7.4.2 页面限制可访问区间 123

7.5 控制转移的限制 124

7.5.1 直接采用可执行段描述符的控制转移 124

7.5.2 门描述符保护过程入口点 125

7.5.3 RET指令的特权检查 126

7.5.4 中断/异常对过程入口点的限制 127

7.6 指令集的限制 128

7.6.1 特权指令 128

7.6.2 敏感指令 128

7.7 保护与I/O 129

7.8 检查段选择器合法性的指令 131

7.8.1 LAR指令 131

7.8.2 LSL指令 132

7.8.3 VERR和VERW指令 132

7.8.4 ARPL指令与RPL 133

7.9 实验 133

【实验7.1】V86DOS系统中采用的保护 134

【实验7.2】类型检查保护 135

【实验7.3】寻址区间的限制保护 137

【实验7.4】远程CALL指令中的保护检查 138

小结 142

第八章 虚拟86模式 143

8.1 什么是虚拟86模式 143

8.2 构造V86任务的TSS 143

8.3 进入与退出V86任务 144

8.4 V86任务的内存分配 145

8.5 V86模式下的IOPL域 146

8.5.1 IOPL<3的V86模式 146

8.5.2 IOPL=3的V86模式 147

8.6 1 自陷门与中断门 148

8.6.2 任务门 148

8.6 V86模式下的中断与异常 148

8.7 标志寄存器EFLAGS 149

8.8 V86DOS系统的剖析 149

8.8.1 V86DOS系统概述 149

8.8.2 V86DOS细节 152

8.9 实验 159

【实验8.1】跟踪V86DOS系统的V86监控程序 159

【实验8.2】构造IOPL<3的V86任务 159

小结 162

9.1 调试寄存器 163

第九章 调试功能 163

9.2 调试异常 165

9.2.1 对任务切换的调试 166

9.2.2 单步自陷 166

9.2.3 对数据断点进行调试 166

9.2.4 指令地址断点 167

9.2.5 调试寄存器的保护 167

9.3 实验 168

【实验9.1】新的调试异常处理程序 168

【实验9.2】调试任务切换 178

【实验9.4】放置数据断点 185

【实验9.3】单步跟踪 185

【实验9.5】放置指令断点 187

小结 190

第十章 其它 191

10.1 实模式、保护模式及V86模式的联系 191

10.1.1 从实模式进入保护模式 191

10.1.2 从保护模式返回实模式 191

10.1.3 进入和退出V86模式 192

10.2 80386与80486的差异 192

10.3.1 Cache的结构 193

10.3 80486的超高速缓存器 193

10.3.2 对Cache的控制 194

10.3.3 页级Cache的管理 194

10.3.4 Cache的测试寄存器 194

10.4 80486的浮点处理部件 195

第十一章 系统设计实例 197

11.1 “三代同堂” 197

11.2 对BIOS中INT 15H(AH=87H)调用的模拟 213

11.3 对DEBUG.COM的修改 219

附录A V86DOS系统源程序清单 221

附录B 80386/486指令操作码映像图 270