《Intel系列微处理器结构、编程和接口技术大全 80×86、Pentium和Pentium Pro》PDF下载

  • 购买积分:25 如何计算积分?
  • 作  者:(美)(B.B.布雷)Barry B.Brey著;陈谊等译
  • 出 版 社:机械工业出版社;西蒙与舒斯特国际出版公司
  • 出版年份:1998
  • ISBN:7111060385
  • 页数:951 页
图书介绍:

第1章 关于微处理器和计算机的介绍 1

1.1 历史背景 1

1.1.1 机器时代 1

1.1.2 电子时代 2

1.1.3 程序设计的发展 3

1.1.4 微处理器时代 4

1.1.5 当今的微处理器 5

1.2 基于微处理器的PC机系统 10

1.2.1 存储器和输入/输出系统 11

1.2.2 DOS操作系统 17

1.2.3 微处理器 20

1.3 数制系统 24

1.3.1 数字 24

1.3.2 位计数法 25

1.3.3 任意进制转换成十进制 25

1.3.4 十进制转换成任意进制 26

1.3.5 二进制编码的十六进制 28

1.3.6 补码和反码 29

1.4 计算机中的数据格式 29

1.4.1 ASCII码 30

1.4.2 BCD数据 31

1.4.3 字节数据 32

1.4.4 字数据 33

1.4.5 双字数据 34

1.4.6 实数 35

1.5 本章小结 37

1.6 思考与练习 39

第2章 微处理器及其结构 44

2.1 微处理器的内部结构 44

2.2 实地址方式下的存储器寻址 49

2.2.1 段地址和偏移地址 49

2.2.2 默认(缺省)的段地址寄存器和偏移地址寄存器 51

2.2.3 段和偏移寻址机制允许重定位 54

2.3 保护虚拟地址方式下存储器寻址 54

2.3.1 选择子和描述符 54

2.3.2 对程序不可见的寄存器 57

2.4 存储器分页机制 59

2.4.1 分页寄存器 59

2.4.2 页目录和页表 61

2.5 本章小结 62

2.6 思考与练习 63

第3章 寻址方式 66

3.1 与数据有关的寻址方式 66

3.1.1 寄存器寻址 69

3.1.2 立即寻址 71

3.1.3 直接数据寻址 73

3.1.4 寄存器间接寻址 76

3.1.5 基址变址寻址 79

3.1.6 寄存器相对寻址 81

3.1.7 相对基址变址寻址 83

3.1.8 带比例因子的变址寻址 86

3.1.9 结构 87

3.2 与程序转换地址有关的寻址方式 90

3.2.1 直接程序存储器寻址 90

3.2.2 相对程序存储器寻址 90

3.2.3 间接程序存储器寻址 91

3.3 堆栈存储器寻址方式 92

3.4 本章小结 95

3.5 思考与练习 99

第4章 数据传送指令 103

4.1 机器语言 103

4.1.1 为什么要了解机器语言 103

4.1.2 机器语言 104

4.2 PUSH/POP指令 112

4.2.1 PUSH指令 112

4.2.2 POP指令 114

4.2.3 初始化堆栈 115

4.3 地址传送指令 116

4.3.1 LEA指令 117

4.3.2 LDS、LES、LFS、LGS和LSS指令 118

4.4 数据串传送指令 120

4.4.1 方向标志 120

4.4.2 DI和SI 120

4.4.3 LODS指令 120

4.4.4 STOS指令 122

4.4.5 带REP的STOS指令 122

4.4.6 MOVS指令 123

4.4.7 INS指令 124

4.4.8 OUTS指令 125

4.5 其他数据传送指令 126

4.5.1 XCHG指令 126

4.5.2 LAHF和SAHF指令 126

4.5.3 XLAT指令 126

4.5.4 IN和OUT指令 127

4.5.5 MOVSX和MOVZX指令 129

4.5.6 BSWAP指令 130

4.5.7 CMOV指令 130

4.6 段超越前缀 131

4.7 汇编程序详述 131

4.7.1 伪操作 131

4.7.2 存储器组织 136

4.7.3 一个实例程序 140

4.8 本章小结 141

4.9 思考与练习 143

第5章 算术和逻辑运算指令 146

5.1 加法、减法和比较指令 146

5.1.1 加法指令 146

5.1.2 减法指令 152

5.1.3 比较指令 155

5.2 乘法和除法指令 157

5.2.1 乘法指令 157

5.2.2 除法指令 159

5.3 BCD和ASCII码的算术运算指令 162

5.3.1 BCD算术运算 162

5.3.2 ASCII算术运算指令 163

5.4 基本逻辑运算指令 165

5.4.1 AND指令 165

5.4.2 OR指令 167

5.4.3 XOR指令 168

5.4.4 测试指令和位测试指令 169

5.4.5 NOT和NEG指令 171

5.5 移位和循环移位指令 171

5.5.1 移位指令 171

5.5.2 循环移位指令 174

5.5.3 位扫描指令 175

5.6 串比较指令 175

5.6.1 SCAS指令 175

5.6.2 CMPS指令 176

5.7 本章小结 177

5.8 思考与练习 179

第6章 程序控制指令 183

6.1 转移指令 183

6.1.1 无条件转移指令(JMP) 183

6.1.2 条件转移和条件置位指令 190

6.1.3 LOOP指令 193

6.2 对汇编语言程序流程的控制 194

6.2.1 条件汇编语句.IF 195

6.2.2 DO_WHILE循环语句 198

6.2.3 REPEAT_UNTIL循环语句 202

6.3 过程(procedure) 203

6.3.1 CALL指令 203

6.3.2 RET指令 209

6.4 中断 210

6.4.1 中断向量 210

6.4.2 中断指令 211

6.4.3 中断控制指令 213

6.4.4 PC机中的中断分配 213

6.5 机器控制及其他指令 214

6.5.1 对进位标志的控制 214

6.5.2 WAIT指令 215

6.5.3 HLT指令 215

6.5.4 NOP指令 215

6.5.5 LOCK前缀 215

6.5.6 ESC指令 215

6.5.7 BOUND指令 215

6.5.8 ENTER和LEAVE指令 216

6.6 本章小结 217

6.7 思考与练习 220

第7章 微处理器级的程序设计 223

7.1 模块化程序设计 223

7.1.1 汇编程序和连接程序 223

7.1.2 PUBLIC和EXTRN伪操作 225

7.1.3 库 226

7.1.4 宏 228

7.1.5 宏序列中的条件语句 231

7.1.6 条件汇编语句 231

7.1.7 在宏中使用条件语句 233

7.1.8 模块化的程序设计方法 239

7.2 使用键盘和视频显示器 239

7.2.1 用DOS功能调用读键盘 240

7.2.2 用DOS功能调用写视频显示器 245

7.2.3 使用BIOS视频功能调用 246

7.2.4 一个用于显示字符的宏 249

7.2.5 鼠标 250

7.2.6 检测鼠标的存在 250

7.2.7 获取鼠标的类型及其驱动程序的版本号 251

7.2.8 使用鼠标 254

7.3 数据转换 258

7.3.1 将二进制数转换成ASCII码 258

7.3.2 将ASCII码转换成三进制数 261

7.3.3 显示和读取十六进制数据 262

7.3.4 使用查询表实现数据转换 265

7.3.5 一个使用数据转换的实例程序 267

7.4 磁盘文件 272

7.4.1 磁盘的组织 272

7.4.2 顺序存取文件 274

7.4.3 随机存取文件 281

7.5 程序举例 283

7.5.1 计算器程序 283

7.5.2 数字排序程序 285

7.5.3 十六进制文件的显示 289

7.6 中断接管 293

7.6.1 拦截一个中断 293

7.6.2 TSR报时程序示例 294

7.6.3 热键程序举例 301

7.7 本章小结 308

7.8 思考与练习 309

第8章 8086/8088硬件描述 312

8.1 引脚及其功能 312

8.1.1 引脚 312

8.1.2 电源要求 312

8.1.3 直流特性 313

8.1.4 引脚功能 314

8.2 时钟发生器(8284A) 317

8.2.1 8284A时钟发生器 318

8.2.2 8284A的操作 319

8.3 总线缓冲与锁存 320

8.3.1 分离总线信息 320

8.3.2 缓冲系统 323

8.4 总线时序 325

8.4.1 基本的总线操作 325

8.4.2 一般的时序 325

8.4.3 读时序 326

8.4.4 写时序 330

8.5 就绪与等待状态 330

8.5.1 READY输入信号 330

8.5.2 RDY与8284A 330

8.6 最小方式与最大方式 332

8.6.1 最小方式操作 334

8.6.2 最大方式操作 334

8.6.3 8288总线控制器 334

8.7 本章小结 336

8.8 思考与练习 336

第9章 存储器接口 339

9.1 存储器器件 339

9.1.1 存储器的引脚 339

9.1.2 ROM 341

9.1.3 静态RAM(SRAM)器件 343

9.1.4 动态RAM(DRAM) 344

9.2 地址译码 351

9.2.1 为什么要译码 351

9.2.2 简单的与非门译码器 351

9.2.3 3-8译码器(741S138) 352

9.2.4 双2-4译码器(74LS139) 354

9.2.5 PROM地址译码器 354

9.2.6 PLD可编程译码器 356

9.3 8088与80188(8位)存储器接口 359

9.3.1 基本的8088/80188存储器接口 359

9.3.2 连接flash闪速存储器 362

9.3.3 用奇偶性检查存储器错误 363

9.3.4 错误校正 364

9.4 8086、80186、80286与80386SX(16位)存储器接口 366

9.5 80386DX与80486(32位)存储器接口 372

9.5.1 存储体 372

9.5.2 32位存储器接口 373

9.6 Pentium与Pentium Pro(64位)存储器接口 376

9.7 动态RAM 378

9.7.1 DRAM回顾 378

9.7.2 EDO存储器 381

9.7.3 DRAM控制器 381

9.8 本章小结 384

9.9 思考与练习 385

第10章 基本I/O接口 388

10.1 I/O接口简介 388

10.1.1 I/O指令 388

10.1.2 独立编址I/O与存储器映象I/O 390

10.1.3 PC机I/O映象 391

10.1.4 基本输入输出接口 391

10.1.5 信号交换 393

10.2 I/O端口地址译码 393

10.2.1 译码8位I/O地址 395

10.2.2 译码16位I/O地址 396

10.2.3 8位与16位I/O端口 397

10.2.4 32位I/O端口 399

10.3 可编程外围接口 401

10.3.1 8255概述 401

10.3.2 编程82C55 402

10.3.3 方式0操作 404

10.3.4 方式1选通输入 412

10.3.5 方式1选通输出 415

10.3.6 方式2双向操作 417

10.3.7 82C55方式总结 420

10.4 8279可编程键盘/显示器接口 420

10.4.1 8279概述 420

10.4.2 8279与微处理器的接口 422

10.4.3 键盘接口 423

10.4.4 6位显示器接口 426

10.5 8254可编程间隔定时器 427

10.5.1 8254功能描述 428

10.5.2 编程8254 429

10.5.3 直流电动机的转速与方向控制 434

10.6 16550可编程通信接口 437

10.6.1 异步串行数据 437

10.6.2 16550功能描述 438

10.6.3 编程16550 440

10.7 模/数转换器(ADC)与数/模转换器(DAC) 445

10.7.1 DAC0830数/模转换器 445

10.7.2 ADC0804模/数转换器 446

10.7.3 ADC0804与DAC0830应用举例 449

10.8 本章小结 451

10.9 思考与练习 452

第11章 中断 455

11.1 基本中断处理 455

11.1.1 中断的目的 455

11.1.2 中断 455

11.1.3 中断指令:BOUND,INTO,INT,INT3和IRET 458

11.1.4 实方式中断操作 459

11.1.5 保护方式中断操作 459

11.1.6 中断标志位 460

11.1.7 将一个中断向量存于向量表 463

11.2 硬件中断 464

11.2.1 INTR与INTA? 465

11.2.2 82C55键盘中断 466

11.3 扩充中断结构 470

11.3.1 用74ALS244扩充 470

11.3.2 菊花链中断 470

11.4 8259A可编程中断控制器 473

11.4.1 8259A概述 473

11.4.2 连接单个8259A 474

11.4.3 级连多个8259A 474

11.4.4 编程8259A 474

11.4.5 8259A编程举例 479

11.5 实时时钟 486

11.6 本章小结 489

11.7 思考与练习 490

第12章 直接存储器存取以及DMA控制下的I/O 492

12.1 基本的DMA操作 492

12.2 8237DMA控制器 494

12.2.1 软件命令 499

12.2.2 地址寄存器和字计数寄存器编程 499

12.2.3 8237和80×86微处理器相连 500

12.2.4 用8237实现存储器到存储器传输 501

12.2.5 DMA控制的打印机接口 506

12.3 共享总线操作 509

12.3.1 定义总线类型 509

12.3.2 总线仲裁器 510

12.3.3 使用8289的优先级逻辑 514

12.3.4 打印假脱机系统和接口 516

12.4 磁盘存储器系统 525

12.4.1 软盘存储器 526

12.4.2 硬盘存储器 530

12.4.3 光盘存储器 533

12.5 视频显示器 534

12.5.1 视频信号 534

12.5.2 TTL RGB监视器 534

12.5.3 模拟RGB监视器 536

12.6 本章小结 540

12.7 思考与练习 541

第13章 协处理器 543

13.1 协处理器的数据格式 543

13.1.1 带符号的整数 543

13.1.2 二进制编码的十进制数(BCD) 545

13.1.3 浮点数 545

13.2 80×87结构 548

13.3 指令系统 553

13.3.1 数据传送指令 554

13.3.2 算术指令 556

13.3.3 比较指令 558

13.3.4 超越指令 558

13.3.5 常数操作 559

13.3.6 协处理器控制指令 559

13.3.7 协处理器指令 562

13.4 协处理器编程 584

13.4.1 计算圆的面积 584

13.4.2 求共振频率 585

13.4.3 通过二次方程求根 586

13.4.4 应用存储数组存储结果 588

13.4.5 显示单精度浮点数 589

13.4.6 键盘读入混合数 591

13.5 本章小结 593

13.6 思考与练习 594

第14章 总线接口 597

14.1 ISA总线 597

14.1.1 ISA总线的发展 597

14.1.2 8位ISA总线输出接口 597

14.1.3 8位ISA总线输入接口 602

14.1.4 16位ISA总线 603

14.2 扩展的ISA(EISA)和VESA局部总线 604

14.2.1 EISA总线引脚图 604

14.2.2 关于EISA总线接口的例子 605

14.2.3 VESA局部总线 608

14.2.4 VESA局部总线引脚图 608

14.3 外围部件连接(PCI)总线 610

14.3.1 PCI总线的引脚图 610

14.3.2 PCI总线的地址/数据连线 612

14.3.3 PCI总线命令 613

14.3.4 配置空间 613

14.3.5 PCI总线的BIOS 615

14.4 本章小结 618

14.5 思考与练习 618

第15章 80186、80188及80286微处理器 620

15.1 80186/80188的结构 620

15.1.1 80186/80188的各型号 621

15.1.2 80186基本结构框图 621

15.1.3 80186/80188基本特征 622

15.1.4 引脚 624

15.1.5 直流操作特性 627

15.1.6 80186/80188时序 627

15.2 80186/80188增强功能编程 631

15.2.1 外围设备控制块(Periphcral Conlrol Bolck) 631

15.2.2 80186/80188中断 632

15.2.3 中断控制器 632

15.2.4 定时器 638

15.2.5 DMA控制器 645

15.2.6 片选单元 647

15.3 80C188EB接口举例 652

15.4 80286简介 656

15.4.1 硬件特性 656

15.4.2 新增指令 657

15.4.3 虚拟存储机 660

15.5 本章小结 660

15.6 思考与练习 661

第16章 80386和80486微处理器 663

16.1 80386微处理器简介 663

16.1.1 存储器系统 666

16.1.2 输入/输出系统 672

16.1.3 存储器和I/O控制信号 674

16.1.4 时序 674

16.1.5 等待状态 676

16.2 特殊的80386寄存器 677

16.2.1 控制寄存器 677

16.2.2 排错和测试寄存器 678

16.3 80386存储管理 680

16.3.1 描述符和选择子 680

16.3.2 描述符表 684

16.3.3 任务状态段(TSS) 686

16.4 向保护方式的转换 688

16.5 虚拟8086方式 704

16.6 存储器分页机制 705

16.6.1 页目录 705

16.6.2 页表 706

16.7 80486微处理器简介 709

16.7.1 80486DX和80486SX微处理器的引脚 710

16.7.2 80486基本结构 714

16.7.3 80486存储系统 715

16.7.4 80486存储管理 718

16.7.5 Cache检测 719

16.8 本章小结 719

16.9 思考与练习 721

第17章 Pentium与Pentium Pro微处理器 724

17.1 Pentium微处理器简介 724

17.1.1 存储器系统 729

17.1.2 输入/输出系统 729

17.1.3 系统时序 729

17.1.4 分支预测逻辑 732

17.1.5 cache结构 733

17.1.6 超标量体系结构 733

17.2 特殊的Pentium寄存器 733

17.2.1 控制寄存器 733

17.2.2 EFLAG寄存器 734

17.2.3 内置自检(BIST) 735

17.3 Pentium存储器管理 735

17.3.1 分页单元 735

17.3.2 存储器管理模式 735

17.4 新的Pentium指令 737

17.5 Pentium Pro微处理器简介 740

17.5.1 Pentium Pro的内部结构 741

17.5.2 引脚连接 743

17.5.3 存储器系统 747

17.5.4 输入/输出系统 748

17.5.5 系统时序 748

17.6 特殊的Pentium Pro特性 749

17.6.1 控制寄存器4 750

17.7 本章小结 750

17.8 思考与练习 751

附录A 汇编程序、DOS、BIOS鼠标及DPMI内存管理程序 753

A.1 使用汇编程序 753

A.2 存储模式 755

A.3 DOS功能调用 759

A.4 BIOS功能调用 784

A.4.1 INT 10H 784

A.4.2 INT 11H 789

A.4.3 INT 12H 789

A.4.4 INT 13H 789

A.4.5 INT 14H 790

A.4.6 INT 15H 790

A.4.7 INT 16H 791

A.4.8 INT 17H 791

A.4.9 DOS低端存储区 791

A.5 鼠标功能 793

A.6 DPMI控制功能 803

附录B 指令系统一览 823

附录C 标志位的变化 916

附录D 思考与练习题中偶数题答案 918