《i486处理机程序员参考手册 下》求取 ⇩

第一章 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

1991《i486处理机程序员参考手册 下》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由鹏飞,晓晖译 1991 北京希望电脑技术公司 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

Visual C++程序员参考手册(1995 PDF版)
Visual C++程序员参考手册
1995 北京:北京大学出版社
IRMX86终端处理程序参考手册 第6册( PDF版)
IRMX86终端处理程序参考手册 第6册
MICROSOFT WINDOWS V3.0 程序员参考手册(1991年05月第1版 PDF版)
MICROSOFT WINDOWS V3.0 程序员参考手册
1991年05月第1版 电子工业出版社
库程序参考手册  下(1990 PDF版)
库程序参考手册 下
1990
80386程序员参考手册( PDF版)
80386程序员参考手册
北京科海集团公司培训中心
程序员参考手册  3(1991 PDF版)
程序员参考手册 3
1991 中国科学院希望高级电脑技术公司
程序员参考手册  中(1979 PDF版)
程序员参考手册 中
1979
Intel 386 SL SuperSet程序员参考手册( PDF版)
Intel 386 SL SuperSet程序员参考手册
程序员参考手册  第1卷( PDF版)
程序员参考手册 第1卷
程序员参考手册  下(1991 PDF版)
程序员参考手册 下
1991 北京:海洋出版社
i486微处理机硬件参考手册( PDF版)
i486微处理机硬件参考手册
北京:清华大学出版社
i486处理机程序员参考手册 下(1991 PDF版)
i486处理机程序员参考手册 下
1991 北京希望电脑技术公司
Microsoft鼠标器程序员参考手册(1994 PDF版)
Microsoft鼠标器程序员参考手册
1994 北京:学苑出版社
DOS程序员参考手册(1996 PDF版)
DOS程序员参考手册
1996 北京:清华大学出版社
Perl 5程序员参考手册(1998 PDF版)
Perl 5程序员参考手册
1998 北京:中国水利水电出版社