图书介绍
80386程序员参考手册pdf电子书版本下载
- 章立生等编 著
- 出版社: 北京科海集团公司培训中心
- ISBN:
- 出版时间:未知
- 标注页数:357页
- 文件大小:16MB
- 文件页数:368页
- 主题词:
PDF下载
下载说明
80386程序员参考手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
目录 1
第一章 80386引论 1
1.1 本手册的组织 1
1.1.1 第一部分——应用程序设计 2
1.1.2 第二部分——系统程序设计 2
1.1.3 第三部分——兼容性 3
1.1.4 第四部分——指令系统 3
1.3.2 未定义位和软件兼容性 4
1.3.1 数据结构格式 4
1.3 表示约定 4
1.2 相关的文献 4
1.1.5 附录 4
1.3.3 指令操作数 5
1.3.4 十六进制数 5
第一部分 应用程序设计 6
第二章 基本程序设计模型 6
2.1 存贮器组织和分段 6
2.1.1 “平面”模型 6
2.1.2 分段模型 7
2.2 数据类型 8
2.3 寄存器 10
2.3.1 通用寄存器 10
2.3.2 段寄存器 10
2.3.3 堆栈的实现 12
2.3.4 标志寄存器 13
2.3.4.1 状态标志 13
2.3.4.2 控制标志 14
2.3.4.3 指令指针 14
2.4 指令格式 14
2.5 操作数选择 15
2.5.1 立即操作数…………………………………………………………………(16 )2.5.2 寄存器操作数 16
2.5.3 存贮器操作数 16
2.5.3.1 段选择 17
2.5.3.2 有效地址计算 18
2.6 中断和异常 20
第三章 应用指令系统 22
3.1 数据移动指令 22
3.1.1 通用数据移动指令 22
3.1.2 堆栈操作指令 23
3.1.3 类型转换指令 24
3.2 二进制算术运算指令 25
3.2.1 加法和减法指令 26
3.2.2 比较和符号改变指令 26
3.2.3 乘法指令 26
3.2.4 除法指令 27
3.3 十进制算术运算指令 27
3.3.1 压缩的BCD调整指令 28
3.3.2 未压缩的BCD调整指令 28
3.4 逻辑运算指令 28
3.4.3 位扫描指令 29
3.4.1 布尔运算指令 29
3.4.2 位测试和修改指令 29
3.4.4 移位和循环移位指令 30
3.4.4.1 移位指令 30
3.4.4.2 双倍移位指令 31
3.4.4.3 循环移位指令 32
3.4.4.4 使用双移位指令作快速“位块传输” 33
3.4.4.5 快速位串插入和提取 34
3.5.1.1 跳转指令 37
3.5.1 无条件转移指令 37
3.4.6 测试指令 37
3.4.5 按条件字节设置指令 37
3.5 控制转移指令 37
3.5.1.2 调用指令 38
3.5.1.3 返回和中断返回指令 38
3.5.2 条件转移指令 38
3.5.2.1 条件跳转指令 38
3.5.2.2 循环指令 38
3.5.2.3 执行一次循环或重复零次 40
3.5.3 软件产生的中断 40
3.6.1 重复前缀 41
3.6 串和字符转换指令 41
3.6.2 索引和方向标志控制 42
3.6.3 串指令 42
3.7 块结构语言的指令 43
3.8 标志控制指令 47
3.8.1 进位和方向标志控制指令 47
3.8.2 标志传递指令 47
3.9 协处理器接口指令 48
3.10 段寄存器指令 48
3.10.2 远程控制转移指令 49
3.10.1 段寄存器传递指令 49
3.10.3 数据指针指令 50
3.11 其它指令 50
3.11.1 地址计算指令 50
3.11.2 空操作指令 51
3.11.3 转换指令 51
4.1.1 系统标志 52
4.1 系统寄存器 52
第四章 系统体系结构 52
第二部分 系统程序设计 52
4.1.2 存贮器管理寄存器 53
4.1.3 控制寄存器 53
4.1.4 调试寄存器 54
4.1.5 测试寄存器 54
4.2 系统指令 54
第五章 存贮器管理 57
5.1 段转换 57
5.1.1 描述符 58
5.1.3 选择指针 59
5.1.2 描述符表 59
5.1.4 段寄存器 60
5.2 页面变换 61
5.2.1 页面框架 61
5.2.2 线性地址 61
5.2.3 页表 61
5.2.4 页表项 62
5.2.4.1 页面框架地址 62
5.2.4.2 出现位 62
5.2.5 页面转换高速缓存 63
5.2.4.3 访问位和修改位 63
5.2.4.4 读/写位和用户/管理员位 63
5.3 联合段变换和页面变换 64
5.3.1 “平面”体系结构 64
5.3.2 跨过几个页面的段 64
5.3.3 跨过几个段的页面 65
5.3.4 未对界的页面和段界线 65
5.3.5 对界的页面和段界线 65
5.3.6 每个段的页表 65
6.3 段级保护 66
6.2 80386保护机构概述 66
6.1 为什么要保护 66
第六章 保护 66
6.3.1 描述符存放保护参数 67
6.3.1.1 类型检查 68
6.3.1.2 界限检查………………………………………………………………(70 )6.3.1.3 特权级 70
6.3.2 限制对数据的访问 71
6.3.3 限制控制转移 72
6.3.4 门描述符保护过程入口点 73
6.3.4.1 堆栈切换 75
6.3.4.2 从一个过程返回 77
6.3.5 一些为操作系统保留的指令 78
6.3.5.1 特权指令 78
6.3.5.2 敏感指令 78
6.3.6 关于指针合法性的指令 78
6.3.6.1 描述符合法性 80
6.3.6.2 指针一致性和RPL 80
6.4.1.2 类型检查……………………………………………………………( 81 )6.4.2 联合两级页表的保护 81
6.4.1.1 限制可寻址区间 81
6.4.3 对页面保护的取代 81
6.4 页面级保护 81
6.4.1 页表项含有保护参数 81
6.5 联合页面和段保护 82
第七章 多任务 84
7.1 任务状态段………………………………………………………………(84 )7.2 TSS描述符 85
7.3 任务寄存器 86
7.4 任务门描述符 87
7.5 任务切换 88
7.6 任务链接 90
7.6.1 忙碌位防止循环 91
7.6.2 修改任务链接 91
7.7.2 任务的逻辑地址空间 92
7.7 任务地址空间 92
7.7.1 任务的线性地址到物理地址的变换 92
第八章 输入/输出 94
8.1 I/O寻址 94
8.1.1 I/O地址空间 94
8.1.2 存贮器变换的I/O 94
8.2 I/O指令 95
8.2.1 寄存器I/O指令 95
8.2.2 块I/O指令 96
8.3 保护和I/O 96
8.3.2 I/O允许位图 97
8.3.1 I/O特权级 97
第九章 异常和中断 99
9.1 识别中断 99
9.2 使能和禁止中断 100
9.2.1 NMI屏蔽进一步的NMI 100
9.2.2 IF屏蔽INTR 101
9.2.3 RF屏蔽调试故障 101
9.2.4 MOV或POP到SS屏蔽某些异常和中断 101
9.3 在同时出现的中断和异常中的优先权 101
9.4 中断描述符表 102
9.5 IDT描述符 103
9.6 中断任务和中断过程 103
9.6.1 中断过程 103
9.6.1.1 中断过程的堆栈 104
9.6.1.2 从中断过程返回 105
9.6.1.3 中断过程的标志使用 105
9.6.1.4 中断过程中的保护 105
9.6.2 中断任务 105
9.8 异常条件 106
9.7 错误代码 106
9.8.1 中断0——除法错 107
9.8.2 中断1——调试异常 107
9.8.3 中断3——断点 107
9.8.4 中断4——溢出 107
9.8.5 中断5——界限检查 107
9.8.6 中断6——无效操作码 107
9.8.7 中断7——协处理器不可用 108
9.8.8 中断8——双故障 108
9.8.9 中断9——协处理器段溢出 109
9.8.10 中断10—非法TSS 110
9.8.11 中断11——段不出现 110
9.8.12 中断12——堆栈异常 111
9.8.13 中断13——一般保护异常 111
9.8.14 中断14——页面故障 112
9.8.14.1 任务切换过程中的页面故障 113
9.8.14.2 具有不一致堆栈指针的页面故障 113
9.8.15 中断16——协处理器错 114
9.9 异常概述 115
9.10 错误代码概述 116
10.1 复位后的处理器状态 117
第十章 初始化 117
10.2 对实地址方式的软件初始化………………………………………………(117 )10.2.1 堆栈 118
10.2.2 中断表 118
10.2.3 第一条指令 118
10.3 切换到保护方式 118
10.4.3 全局描述符表 119
10.4.4 页表 119
10.4.5 第一个任务 119
10.4.2 堆栈 119
10.4.1 中断描述符表 119
10.4 为保护方式的软件初始化 119
10.5 初始化举例 120
10.6 TLB测试 128
10.6.1 TLB的结构 128
10.6.2 测试寄存器 128
10.6.3 测试操作 130
第十一章 协处理和多道处理 131
11.1 协处理 131
11.1.1 协处理器识别 131
11.1.2 ESC和WAIT指令 131
11.1.5.2 中断9——协处理器段溢出 132
11.1.5.1 中断7——协处理器不可用 132
11.1.3 EM和MP标志 132
11.1.5 协处理器异常 132
11.1.4 任务切换标志 132
11.1.5.3 中断16——协处理器错 133
11.2 一般多道处理 133
11.2.1 Lock和Lock#信号 133
11.2.2 自动封锁 134
11.2.3 高速缓存考虑 134
12.1 体系结构的调试特性 136
第十二章 调试 136
12.2 调试寄存器 137
12.2.1 调试地址寄存器(DR0~DR3) 137
12.2.2 调试控制寄存器(DR7) 138
12.2.3 调试状态寄存器(DR6) 138
12.2.4 断点域识别 139
12.3 调试异常 140
12.3.1 中断1——调试异常 140
12.3.1.1 指令地址断点 140
12.3.1.4 单步自陷 141
12.3.1.3 一般测试故障 141
12.3.1.2 数据地址断点 141
12.3.1.5 任务切换断点 142
12.3.2 中断3——断点异常 142
第三部分 兼容性 143
第十三章 执行80286保护方式代码 143
13.1 80286代码作为80386的一个子集执行 143
13.2 执行80286任务的两种方法 143
13.3.3 新的描述符类型代码 144
13.3.5 增加的异常 144
13.3.4 受限的LOCK语义 144
13.3.2 描述符的保留字 144
13.3.1 80286 24位物理地址空间的环绕 144
13.3 与80286的差别 144
第十四章 80386实地址方式 146
14.1 物理地址形成 146
14.2 寄存器和指令 147
14.3 中断和异常处理 147
14.4 进入和离开实地址方式 148
14.5 切换回到实地址方式 148
14.7 与8086的差别 149
14.6 实地址方式异常 149
14.8 与80286实地址方式的不同 152
14.8.1 总线封锁 152
14.8.2 第一条指令的位置 153
14.8.3 通用寄存器的初始值 153
14.8.4 MSW的初始化 153
第十五章 虚拟8086方式 154
15.1 执行8086代码 154
15.1.1 寄存器和指令 154
15.2 V86任务的结构 155
15.1.2 线性地址形成 155
15.2.1 为V86任务使用分页功能 156
15.2.2 在V86任务中的保护 156
15.3 进入和离开V86方式 157
15.3.1 通过任务切换的变换 158
15.3.2 通过自陷门和中断门的变换 158
15.4 增加的敏感指令 159
15.4.1 模拟8086操作系统调用 159
15.5.3 专用I/O缓冲区 160
15.5.2 存贮器变换的I/O 160
15.5.1 I/O变换的I/O 160
15.5 虚拟I/O 160
15.4.2 虚拟中断使能标志 160
15.6 与8086的差别 161
15.7 与80286实地址方式的差别 162
第十六章 混合16位和32位代码 164
16.1 80386怎样实现16位和32位特性 164
16.2 混合32位和16位操作 165
16.4.1 代码段指针的尺寸 166
16.4 在混合的代码段之中转移控制 166
16.3 在混合的代码段之中共享数据段 166
16.4.2 为控制转移的堆栈管理 167
16.4.2.1 为一个CALL控制操作数尺寸 168
16.4.2.2 改变调用的尺寸 168
16.4.3 中断控制转移 168
16.4.4 参数变换 169
16.4.5 接口过程 169
17.1.3 堆栈的操作数尺寸属性 170
17.1.2 操作数尺寸和地址尺寸指令前缀 170
17.1.1 缺省段属性 170
17.1 操作数尺寸和地址尺寸属性 170
第十七章 80386指令系统 170
第四部分 指令系统 170
17.2 指令格式 171
17.2.1 Mod R/M和SIB字节 172
17.2.2 如何阅读指令系统 173
17.2.2.1 操作码 173
17.2.2.2 指令 177
17.2.2.3 时钟 178
17.2.2.5 操作 179
17.2.2.4 描述 179
17.2.2.6 描述 183
17.2.2.7 受影响的标志 183
17.2.2.8 保护方式异常 183
17.2.2.9 实地址方式异常 184
17.2.2.10 虚拟8086方式异常 184
附录A 操作码图表 318
附录B 全部标志的相互引用 325
附录C 状态标志小结 327
附录D 条件码 329
附录E 指令格式和时序 331