图书介绍
i486处理机程序员参考手册 下PDF|Epub|txt|kindle电子书版本网盘下载
![i486处理机程序员参考手册 下](https://www.shukui.net/cover/20/31526499.jpg)
- 鹏飞,晓晖译 著
- 出版社: 北京希望电脑技术公司
- ISBN:
- 出版时间:1991
- 标注页数:233页
- 文件大小:3MB
- 文件页数:251页
- 主题词:
PDF下载
下载说明
i486处理机程序员参考手册 下PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一章 i486TM处理器简介2
1.1 本手册的编排2
1.1.1 第一部分——应用程序设计2
1.1.2 第二部分——系统程序设计2
目录2
1.1.3 第三部分——数值处理3
1.1.4 第四部分——兼容性3
1.1.5 第五部分——指令集4
1.1.6 附录部分4
1.2 参考文献4
1.3 有关约定5
1.3.1 位和字节顺序5
1.3.2 未定义的位和软件兼容性5
1.3.5 分段寻址6
1.3.6 异常6
1.3.4 十六进制数6
1.3.3 指令的操作数6
第一部分 应用程序设计8
第二章 基本程序设计模式8
2.1 内存组织8
2.1.1 未分段或“平板”模式9
2.1.2 分段模式9
2.2 数据类型9
2.3 寄存器11
2.3.1 通用寄存器13
2.3.2 段寄存器15
2.3.3 栈的实现16
2.4 指令格式19
2.5 操作数的选择20
2.5.1 立即操作数21
2.5.2 寄存器操作数22
2.5.3 内存操作数23
2.6 中断和异常24
3.1.1 通用数据传送指令28
第三章 应用程序设计28
3.1 数据传送指令28
3.1.2 栈操作指令29
3.1.3 类型转换指令29
3.2 二进制算术指令31
3.2.1 加法和减法指令32
3.2.2 比较和符号转换指令33
3.2.3 乘法指令33
3.2.4 除法指令34
3.3 十进制算术指令34
3.3.1 压缩BCD的调节指令34
3.3.2 非压缩BCD调节指令35
3.4 逻辑指令35
3.4.1 布尔运算指令35
3.4.2 位测试和修改指令36
3.4.3 位扫描指令36
3.4.4 移位和循环移位指令36
3.4.5 字节的条件设置指令44
3.4.6 测试指令………………………………………………………………………(44 )3.5 转移控制指令45
3.5.1 无条件转移指令45
3.5.2 条件转移指令46
3.5.3 软件中断47
3.6 串运算48
3.6.1 重复前缀49
3.6.2 变址和方向标志控制49
3.6.3 串指令49
3.7 用于块结构语言的指令50
3.8 标志控制指令54
3.8.1 进位和方向标志控制指令55
3.8.2 标志转移指令55
3.9 数值指令56
3.10 段寄存器指令56
3.10.1 段寄存器转移指令57
3.11.1 地址计算指令58
3.11 其它指令58
3.10.2 远转移控制指令58
3.10.3 数据指针指令58
3.11.2 空操作指令59
3.11.3 变换指令59
3.11.4 字节交换指令59
3.11.5 交换及相加指令60
3.11.6 比较并交换指令60
第二部分 系统程序设计64
第四章 系统体系结构64
4.1 系统寄存器64
4.1.1 系统标志64
4.1.2 内存管理寄存器66
4.1.3 控制寄存器66
4.1.4 调试寄存器68
4.2 系统指令69
5.1.1 平板模式73
第五章 内存管理73
5.1 选择分段模式73
5.1.2 受保护的平板模式74
5.1.3 多段模式74
5.2 段的转换75
5.2.1 段寄存器75
5.2.2 段选择子76
5.2.3 段描述子78
5.2.4 段描述子表82
5.2.5 描述子表基址寄存器82
5.3 页式转换83
5.3.1 PG位开放页机构84
5.3.2 线性地址85
5.3.3 页表85
5.3.4 页表项85
5.4.1 平板模式87
5.4.2 跨越多页的段87
5.4 组合的段页式转换87
5.3.5 转换旁视缓冲器87
5.4.3 跨越多段的页88
5.4.4 对齐的段页边界88
5.4.5 每段一个页表88
第六章 保护90
6.1 段一级的保护90
6.2 段描述子和保护90
6.2.1 类型检查91
6.2.2 限长检查92
6.2.3 特权级93
6.3 限制数据的存取94
6.3.1 存取代码段中的数据95
6.4 限制控制的转移96
6.5 门描述子97
6.5.1 任务切换99
6.5.2 过程的返回101
6.6.1 特权指令103
6.6 操作系统保留的指令103
6.6.2 敏感指令104
6.7 用于检查的指令104
6.7.1 描述子的合法性105
6.7.2 指针完整性和RPL105
6.8 页面保护106
6.8.1 页表项包括保护参数106
6.8.2 两级页表的组合保护107
6.9 段和页的组合保护108
6.8.3 页保护的超越情况108
第七章 多任务109
7.1 任务状态段109
7.2 TSS描述子110
7.3 任务寄存器110
7.4 任务门描述子111
7.5 任务切换112
7.6 任务连接116
7.6.1 忙位阻止循环117
7.7 任务地址空间118
7.7.1 任务线性物理空间118
7.6.2 修改任务的连接状态118
7.7.2 任务逻辑地址空间119
第八章 输入输出120
8.1 I/O寻址120
8.1.1 I/O地址空间120
8.1.2 内存映象I/O121
8.2 I/O指令122
8.2.1 寄存器I/O指令122
8.3.1 I/O特权级123
8.2.2 块I/O指令123
8.3 保护与I/O123
8.3.2 I/O权限位映象124
第九章 异常与中断126
9.1 异常和中断向量126
9.2 指令再启动127
9.3.4 对SS进行MOV、POP可屏蔽某些异常和中断128
9.3.3 RF屏蔽调试故障128
9.3.1 NMI屏蔽多重不可屏蔽中断128
9.3.2 IF屏蔽INTR中断128
9.3 开放与关闭中断128
9.4 异常和中断的优先级129
9.5 中断描述子表129
9.6 IDT描述子130
9.7 中断门和中断处理131
9.7.1 中断过程131
9.7.2 中断任务133
9.8 错误代码134
9.9 异常条件135
9.9.1 中新0——除法错135
9.9.2 调试异常136
9.9.3 中断3——断点136
9.9.4 中断4——溢出136
9.9.6 中断6——非法操作码137
9.9.7 中断7——设备不可用137
9.9.5 中断5——界限检查137
9.9.8 中断8——双故障138
9.9.9 中断9——Intel保留139
9.9.10 中断10——非法TSS139
9.9.11 中断11——段不存在140
9.9.12 中断12——栈异常141
9.9.13 中断13——通用保护141
9.9.14 中断14——页故障142
9.9.15 中断16——浮点错误143
9.9.16 中断17——对齐检查143
9.10 异常小结144
9.11 错误代码小结145
第十章 初始化147
10.1 初始化后处理器的状态147
10.2 实方式下软件初始化148
10.2.4 开放高速缓存149
10.2.3 ?条指令149
10.2.1 系统表149
10.2.2 NMI中断149
10.3 切换至保护方式150
10.3.1 系统表150
10.3.2 NMI中断150
10.3.3 PE位150
10.4 保护方式下的软件初始化150
10.4.1 分段150
10.5 TLB测试151
10.5.1 TLB结构151
10.4.3 任务151
10.4.2 分页151
10.5.2 测试寄存器152
10.5.3 测试操作153
10.6 高速缓存(Chache)测试154
10.6.1 Cache结构154
10.6.2 测试寄存器155
10.7 初始化举例157
11.2 调试寄存器163
11.1 调试支持163
第十一章 调试163
11.2.1 调试地址寄存器(DR0~DR3)164
11.2.2 调试控制寄存器(DR7)164
11.2.3 调试状态寄存器(DR6)165
11.2.4 断点域识别165
11.3 调试异常165
11.3 1 中断1——调试异常166
11.3.2 中断3——断点指令168
12.1 高速缓存介绍169
第十二章 高速缓存Cache169
12.2 内部Cache操作170
12.2.1 Cache禁止位170
12.2.2 Cahce管理指令170
12.2.3 自身修改代码170
12.3 页级Cache管理171
12.3.1 Cache管理位171
13.1.1 LOCK前缀和LOCK#信号172
13.1 锁定和伪锁定的总线周期172
第十三章 多机处理172
13.1.2 自动锁定173
13.1.3 伪锁…………………………………………………………………………(173 )第三部分 数值处理第十四章 数值应用程序介绍14.1 历史175
14.2 性能175
14.3 应用简便性176
14.4 应用程序177
14.5 程序设计接口178
15.1.1 FPU寄存器栈181
15.1 数值寄存器181
第十五章 浮点部件的结构181
15.1.2 FPU状态字182
15.1.3 控制字184
15.1.4 FPU标记字185
15.1.5 数值指令和数据指针186
15.2 计算基础187
15.2.1 数字系统187
15.2.2 数据类型和格式188
15.2.3 舍入控制192
15.2.4 精度控制193
第十六章 特殊的计算情况194
16.1 特殊的数值194
16.1.1 浮点实数194
16.1.2 零198
16.1.3 无穷数200
16.1. 4 NaN(“不是数”)202
16.1.7 未支持的格式204
16.1.6 数据类型的编码形式204
16.1.5 不定数204
16.2 数值异常208
16.2.1 处理数值异常209
16.2.2 非法运算210
16.2.3 除零211
16.2.4 非规格化操作数212
16.2.5 算术上溢和下溢212
16.2.6 非精确(精度)214
16.2.8 标准上溢/下溢异常处理程序215
16.2.7 异常的优先级215
第十七章 浮点指令集216
17.1 目的操作数和源操作数216
17.2 数据传送指令216
17.3 基本算术指令217
17.4 比较指令218
17.5 超越数指令219
17.6 常数指令220
17.7 控制指令220
第十八章 数值应用程序222
18.1 编程工具222
18.1.1 高级语言222
18.1.2 C程序222
18.1.3 PL/M—386/486222
18.1.4 ASM386/486224
18.1.5 示范程序227
18.2 并发处理231
18.2.1 并发的管理232
第十九章 系统一级的考虑234
19.1 体系结构234
19.1.1 独立的寻址方式234
19.2 处理器的初始化和控制234
19.2.1 系统的初始化234
19.2.2 设置数值环境234
19.2.3 初始化FPU235
19.2.4 仿真235
19.2.5 处理数值异常236
19.2.6 响应多重异常236
19.2.7 异常恢复示例236
第二十章 数值示范程序238
20.1 条件分支程序238
20.2 异常处理程序238
20.3 浮点数到ASCII码的转换程序242
20.3.1 功能划分242
20.3.2 对异常的考虑243
20.3.3 特殊指令257
20.3.4 操作的描述257
20.3.5 数值的调节257
20.3.6 输出格式258
20.4 三角运算程序258
第四部分 兼容性270
第二十一章 运行80286和386DX或SX CPU程序270
21.1 运行80286CPU任务的两种方式270
21.2 与80286CPU的差别270
21.2.1 24位物理地址空间的环绕270
21.2.2 段描述子的保留字271
21.2.3 新段描述子类型代码271
21.2.4 限制LOCK前缀的语义271
21.2.5 增加的异常271
21.3 与386TMCPU的差别271
21.3.5 新的页表项位272
21.3.4 新的控制寄存器位272
21.3.6 装入段描述子时的变化272
21.3.2 新的异常272
21.3.1 新的标志272
21.3.3 新的指令272
第二十二章 实地址方式273
22.1 地址的形式273
22.2 寄存器和指令274
22.3 中断和异常处理274
22.4 进入和退出实地址方式275
22.4.1 进入保护方式275
22.5 返回实地址方式275
22.6 实地址方式异常276
22.7 与8086CPU的差别277
22.8.3 通用寄存器的初始值280
22.8.5 与算述协处理器的差别280
22.8.4 总线保持280
22.8.1 总线锁定280
22.8 与80286CPU实地址方式的差别280
22.8.2 指令的存贮位置280
22.9 与386TMDX CPU实方式的差别281
22.10 处理器类型检测代码281
第二十三章 虚拟8086方式282
23.1 运行8086CPU代码282
23.1.1 寄存器和指令282
23.2 V—8086任务的结构283
23.1.2 地址转换283
23.2.1 V—8086任务的分页284
23.2.2 V—8086任务的保护284
23.3 进入和退出V—8086方式285
23.3.1 通过任务切换的转移286
23.3.2 通过陷井门和中断门的转移286
23.4 补充的敏感指令287
23.4.1 仿真8086操作系统调用287
23.5.2 存储映象的I/O288
23.5.1 I/O映象的I/O288
23.4.2 仿真可中断标志位288
23.5 虚拟I/O288
23.5.3 特殊I/O缓冲区289
23.6与 8086CPU的区别289
23.7 与实地址方式下的80286CPU的区别291
23.7.1 特权级291
23.7.2 总线封锁291
23.8 与386TMDX和SX CPU的区别292
第十四章 混合16位和32位的代码293
24.1 使用16位和32位环境293
24.2 混合16位和32位的操作294
24.3 混合长度代码段中数据的共享294
24.4 混合长度代码段中的控制转移295
24.4.1 代码段指针的长度295
24.4.2 控制转移的栈管理295
24.4.4 参量转换297
24.4.5 接口过程297
24.4.3 中断控制转移297
第二十五章 与387、80287和8087协处理器的兼容性299
25.1 与386TMCPU/387TMNPX系统的区别299
25.2 与80286/80287系统的区别300
25.2.1 数据类型与异常处理300
25.2.2 特征字、状态字与控制字304
25.2.3 指令设置306
25.3 与8086/8087系统的区别309
26.1.1 缺省段属性312
26.1.2 操作数长度和地址长度指令前缀312
第五部分 i486指令集312
26.1 操作数的地址长度属性312
第二十六集 指令集312
26.1.3 堆栈的地址长度属性313
26.2 指令格式313
26.2.1 ModR/M和SIB字节314
26.2.2 如何阅读指令集318
AAA325
ADD326
AAM327
AAS327
ADC328
ADD329
AND330
ARPL330
BOUND331
BSF332
BSR333
BSWAP334
BT334
BTC335
BTR336
PTS337
CALL339
CBW/CWDE342
CLD343
CLC343
CLI344
CLTS344
CMC345
CMP345
CMPS/CMPSB/CMPSD346
CMPXCHG348
DAA349
CWD/CDC349
DAS350
DEC351
DIV351
ENTER352
F2XM1354
FABS354
FADD/FADDP/FLADD355
FBLD356
FBSTP356
FCLEX/FNCLEX357
FCH3357
FCOM/FCOMP/FCMPP358
FCOS359
FDECSTP360
FDIV/FDIVP/FIDIV361
FDIVR/FDIVPR/FIDIVR362
FFREE362
FICOM/FICOMP363
FILD364
FINIT/FNINIT365
FINCSTP365
FIST/FISTP366
FLD367
FLDI/FLD2F/FLD2E368
FLDPI/FLDG2/FLDLN2/FLDZ368
FLDCW369
FLDENV369
FMUL/FMULP/FIMUL370
FNOP371
FPATAN371
FPREM1373
F?TAN374
F?NDINT375
FRSTOR376
F?AVE/FNSAVE376
FSCALE377
FSIN378
FSINCOS379
FSQRT380
FST/FSTP380
FSTCW/FNSTCW381
FSTENV/FNSTENV382
FSTSW/FNSTSW383
FSUB/FSUBP/FISUB384
FSUBR/FSUBPR/FISUBR385
FUCOM/FUCOMP/FUCOMPP385
FWAIT387
FXAM388
FXCH388
FXTRACT389
FYL2X390
FYL2XP1391
HLT392
IDIV392
IMUL393
IN ……………………………………(?)396
INC396
INS/INSB/INSW/INSD396
INT/INTO398
INVD400
INVLPG401
IRET/IRETD403
Jcc408
JMP411
LAHF415
LAR415
LEA416
LEAVE418
LGDT/LIDT418
LGS/LSS/LDS/LES/LFS420
LLDT…………………………………( 421 )422
LMSW422
LOCK423
LODS/LOSB/LODSW/LODSD424
LOOP/LOOPcond425
LSL426
LTR427
MOV429
MOV430
MOVSW/MOVSD431
MOVS/MOVSB/431
MOVSX433
MOVZX433
MUL434
NEG435
NOP435
NOT436
OR437
OUT438
OUTS/OUTSB/439
OUTSW/OUTSD439
POP440
POPA/POPAD442
POPF/POPFD443
PUSH444
PUSHA/PUSHAD445
PUSHF/PUSHFD446
RCL/RCR/ROR447
REP/REPE/PEPZ/449
REPNE/REPNZ449
RET451
SAHF454
SAL/SAR/SHL/SHR455
SBB457
SCAS/SCASB/SCASW/SCASD458
SETcc459
SGDT/SIDT460
SHLD461
SHRD462
SLDT463
SMSW464
STD465
STI465
STC465
STOS/STOSB/STOSW/STOSD466
STR467
SUB468
TEST470
VERR/VERW470
WAIT471
WBINVD472
XADD473
XCHG474
XLAT/XLATB474
XOR475
A.2 编址方式的代码477
A.1 缩写的关键477
A.3 操作数类型的代码477
附录A 操作码映象477
A.4 寄存器代码478
附录B 标志交叉引用483
B.1 编码关键483
C.1 状态标志485
C.2 编码关键485
附录C 状态标志归纳485
附录D 条件代码487
D.1 条件的定义487
附录G 代码优化500
附录F 数字异常小结500
G.1 录址方式500
附录E 指令格式与时序500
G.2 预取单元501
G.3 缓存和代码定位501
G.4 NOP指令502
G.5 整数指令503
G.6 条件代码504
G.7 串指令505
G.8 浮点指针指令505
G.10 时钟覆盖506
G.11 杂项用法准则506
G.9 前缓操作码506
FPREM3372