《Intel微处理器全系列 结构、编程与接口 第5版》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:(美)Barry B.Brey著;金惠华等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505367250
  • 页数:940 页
图书介绍:

第1章 微处理器和PC入门 1

1.1历史回顾 1

1.1.1机械时代 2

1.1.2电子时代 2

1.1.3程序设计的进步 3

1.1.4微处理器时代 4

1.1.5现代微处理器 5

1.2基于微处理器的PC系统 12

1.2.1存储器和I/O系统 13

1.2.2 DOS操作系统 20

1.2.3微处理器 22

1.3数制 26

1.3.1数字 26

1.3.2位计数法 26

1.3.3其他数制转换到十进制 27

1.3.4十进制转换成其他进制 28

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

1.3.6补码 31

1.4计算机数据格式 32

1.4.1 ASCII数据 32

1.4.2 BCD(二进制编码的十进制)数据 34

1.4.3字节数据 34

1.4.4字数据 36

1.4.5双字数据 37

1.4.6实数 38

1.5小结 40

1.6习题 42

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

2.1微处理器的内部结构 47

2.1.1程序设计模型 47

2.2实模式存储器寻址 52

2.2.1段和偏移 52

2.2.2默认段和偏移寄存器 54

2.2.3段加偏移寻址机制允许重定位 57

2.3保护模式存储器寻址 57

2.3.1选择子和描述符 57

2.3.2程序不可见寄存器 61

2.4内存分页 62

2.4.1分页寄存器 62

2.4.2页目录和页表 64

2.5小结 65

2.6习题 66

第3章 寻址方式 69

3.1数据寻址方式 69

3.1.1寄存器寻址 70

3.1.2寄存器寻址 73

3.1.3立即寻址 74

3.1.4直接数据寻址 76

3.1.5寄存器间接寻址 78

3.1.6基址加变址寻址 81

3.1.7寄存器相对寻址 83

3.1.8相对基址加变址寻址 85

3.1.9比例变址寻址 87

3.1.10数据结构 88

3.2程序存储器寻址方式 90

3.2.1直接程序寻址方式 91

3.2.2相对程序存储器寻址 91

3.2.3间接程序存储器寻址 92

3.3堆栈存储器寻址 93

3.4小结 95

3.5习题 98

第4章 数据传送指令 101

4.1 MOV回顾 101

4.1.1机器语言 102

4.2 PUSH/POP 109

4.2.1 PUSH 110

4.2.2 POP指令 111

4.2.3初始化堆栈 113

4.3装入有效地址 114

4.3.1 LEA 114

4.3.2 LDS、LES、 LFS、 LGS和LSS 115

4.4串数据传送 117

4.4.1方向标志 117

4.4.2 DI和SI 117

4.4.3 LODS 118

4.4.4 STOS 119

4.4.5 MOVS 120

4.4.6 INS 121

4.4.7 OUTS 122

4.5杂项数据传送指令 122

4.5.1 XCHG 122

4.5.2 LAHF和SAHF 123

4.5.3 XLAT 123

4.5.4 IN和OUT 124

4.5.5 MOVSX和MOVZX 126

4.5.6 BSWAP 127

4.5.7 CMOV 127

4.6段超越前缀 127

4.7汇编程序详述 128

4.7.1伪指令 128

4.7.2存储器组织 133

4.7.3程序举例 136

4.8小结 138

4.9习题 140

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

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

5.1.1加法指令 143

5.1.2减法指令 149

5.1.3比较指令 151

5.2乘法和除法 152

5.2.1乘法指令 152

5.2.2除法指令 154

5.3 BCD码和ASCII码算术运算指令 157

5.3.1 BCD算术运算 157

5.3.2 ASCII算术运算指令 158

5.4基本逻辑指令 160

5.4.1 AND指令 160

5.4.2 OR指令 162

5.4.3 XOR指令 163

5.4.4测试和位测试指令 164

5.4.5 NOT指令和NEG指令 165

5.5移位和循环指令 166

5.5.1移位指令 166

5.5.2循环指令 168

5.5.3位扫描指令 169

5.6串比较指令 169

5.6.1 SCAS指令 169

5.6.2 CMPS指令 170

5.7小结 171

5.8习题 173

第6章 程序控制指令 177

6.1转移类 177

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

6.1.2条件转移和条件设置 183

6.1.3 LOOP 186

6.2控制汇编语言程序的流程 187

6.2.1 DO-WHILE循环 190

6.2.2 REPEAT-UNTIL循环 194

6.3过程 195

6.3.1 CALL 196

6.3.2 RET 200

6.4中断介绍 201

6.4.1中断向量 201

6.4.2中断指令 202

6.4.3中断控制 204

6.4.4 PC机的中断 204

6.5机器控制及杂项指令 205

6.5.1控制进位标志位 205

6.5.2 WAIT 205

6.5.3 HLT 206

6.5.4 NOP 206

6.5.5 LOCK前缀 206

6.5.6 ESC 206

6.5.7 BOUND 206

6.5.8 ENTER和LEAVE 207

6.6小结 208

6.7习题 211

第7章 微处理器程序设计 214

7.1模块化程序设计 214

7.1.1汇编程序和连接程序 215

7.1.2 PUBLIC和EXTRN 216

7.1.3库 217

7.1.4宏 219

7.1.5宏序列中的条件语句 221

7.1.6条件汇编语句 221

7.1.7在宏中使用条件语句 223

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

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

7.2.1用DOS功能调用读取键盘 229

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

7.2.3使用BIOS视频功能调用 235

7.2.4显示字符的宏 237

7.2.5鼠标 238

7.2.6测试鼠标 238

7.2.7确定鼠标类型和驱动程序版本 239

7.2.8使用鼠标 241

7.3数据转换 245

7.3.1从二进制转换为ASCII码 245

7.3.2 ASCII码转换为二进制 247

7.3.3显示和读入十六进制数 249

7.3.4使用查找表实现数据转换 251

7.3.5使用数据转换的实例程序 253

7.4磁盘文件 257

7.4.1磁盘的组织 257

7.4.2文件名 259

7.4.3顺序存取文件 260

7.4.4随机存取文件 267

7.5程序举例 268

7.5.1计算器程序 269

7.5.2数字排序程序 270

7.5.3十六进制文件的转储 273

7.6中断钩连 277

7.6.1拦截一个中断 277

7.6.2 TSR报时程序实例 278

7.6.3热键程序实例 284

7.7小结 290

7.8习题 291

第8章 在C/C++中使用汇编语言 294

8.1在16位应用程序中使用汇编语言与C/C++语言 294

8.1.1基本规则 295

8.1.2_asm块中不能使用的MASM功能 297

8.1.3使用字符串 297

8.1.4使用数据结构 299

8.1.5混合语言编程的例子 301

8.2在32位应用程序中使用汇编语言与C/C++语言 302

8.2.1使用控制台I/O访问键盘和显示卡的例子 303

8.2.2直接访问I/O端口 304

8.3独立的汇编目标码 306

8.3.1用Visual C连接汇编语言 306

8.3.2给C/C++程序中添加新的汇编语言指令 311

8.4小结 312

8.5习题 312

第9章 8086/8088硬件特性 314

9.1引脚和引脚功能 314

9.1.1引脚 314

9.1.2电源要求 315

9.1.3引脚功能 316

9.2时钟产生器(8284A) 319

9.2.1 8284A时钟产生器 319

9.3总线缓冲及锁存 322

9.3.1多路分离总线 322

9.3.2缓冲系统 323

9.4总线时序 327

9.4.1基本的总线操作 327

9.4.2一般的时序 328

9.4.3读时序 328

9.4.4写时序 331

9.5就绪和等待状态 331

9.5.1 READY输入 332

9.5.2 RDY和8284A 332

9.6最小模式与最大模式 334

9.6.1最小模式操作 335

9.6.2最大模式操作 335

9.6.3 8288总线控制器 335

9.7小结 337

9.8习题 338

第10章 存储器接口 340

10.1存储器件 340

10.1.1存储器引脚 340

10.1.2 ROM存储器 342

10.1.3静态RAM(SRAM)器件 344

10.1.4动态RAM(DRAM)存储器 345

10.2地址译码 352

10.2.1为什么要进行存储器译码 352

10.2.2简单的与非门译码器 352

10.2.3 3-8线译码器(74LS138) 353

10.2.4双2-4线译码器(74LS139) 356

10.2.5 PROM地址译码器 356

10.2.6 PLD可编程译码器 357

10.3 8088和80188(8位)存储器接口 360

10.3.1基本的8088/80188存储器接口 361

10.3.2与快闪存储器接口 362

10.3.3奇偶校验用于存储器错误检测 364

10.3.4错误校正 366

10.4 8086、 80186、 80286和80386SX (16位)存储器接口 368

10.4.1 16位总线控制 369

10.5 80386DX和80486 (32位)存储器接口 376

10.5.1存储体 376

10.5.2 32位存储器接口 377

10.6 Pentium、 Pentium Pro和Pentium Ⅱ (64位)存储器接口 379

10.6.1 64位存储器接口 380

10.7动态RAM 382

10.7.1 DRAM回顾 382

10.7.2 EDO存储器 383

10.7.3 SDRAM 383

10.7.4 DRAM控制器 385

10.8小结 386

10.9习题 388

第11章 基本I/O接口 391

11.1 I/O接口简介 391

11.1.1 I/O指令 391

11.1.2独立编址I/O与存储器映像I/O 392

11.1.3 PC机I/O映像 394

11.1.4基本输入与输出接口 395

11.1.5信号交换 396

11.1.6关于接口电路的注释 398

11.2 I/O端口地址译码 400

11.2.1译码8位I/O地址 400

11.2.2译码16位I/O地址 402

11.2.3 8位与16位I/O端口 403

11.2.4 32位I/O端口 405

11.3可编程外围设备接口 406

11.3.1 82C55基本描述 406

11.3.2编程82C55 408

11.3.3方式0操作 410

11.3.4方式1选通输入 424

11.3.5方式1选通输出 426

11.3.6方式2双向操作 428

11.3.7 82C55方式小结 431

11.4 8279可编程键盘/显示器接口 431

11.4.1 8279的概述 431

11.4.2 8279与微处理器的接口 432

11.4.3键盘接口 433

11.4.4 6位显示器接口 437

11.5 8254可编程间隔定时器 438

11.5.1 8254功能描述 439

11.5.2编程8254 440

11.5.3直流电机速度与方向控制 445

11.6 16550可编程通信接口 449

11.6.1异步串行数据 449

11.6.2 16550功能描述 449

11.6.3编程16550 451

11.7模/数转换器(ADC)与数/模转换器(DAC) 456

11.7.1 DAC0830数/模转换器 456

11.7.2 ADC080X模/数转换器 458

11.7.3使用 ADC0804和DAC0830的实例 461

11.8小结 463

11.9习题 464

第12章 中断 468

12.1基本中断处理 468

12.1.1中断的目的 468

12.1.2中断 469

12.1.3中断指令:BOUND、 INTO、 INT、 INT 3和IRET 471

12.1.4实模式中断操作 472

12.1.5保护模式中断操作 473

12.1.6中断标志位 473

12.1.7将一个中断向量存于向量表 476

12.2硬件中断 478

12.2.1 INTR和INTA 479

12.2.2 82C55键盘中断 482

12.3扩展中断结构 484

12.3.1使用74ALS244扩展 484

12.3.2菊花链中断 485

12.4 8259A可编程中断控制器 487

12.4.1 8259A概述 487

12.4.2连接单个8259A 488

12.4.3级联多个8259A 489

12.4.4编程8259A 489

12.4.5 8259A编程实例 493

12.5中断实例 502

12.5.1实时时钟 502

12.5.2中断处理键盘 503

12.6小结 506

12.7习题 507

第13章 直接存储器存取及DMA控制I/O 509

13.1基本DMA操作 509

13.1.1基本DMA定义 510

13.2 8237 DMA控制器 511

13.2.1软件命令 515

13.2.2编程地址寄存器和计数寄存器 516

13.2.3 8237与80X86微处理器相连 517

13.2.4用8237进行存储器到存储器传输 518

13.2.5 DMA处理的打印机接口 524

13.3共享总线操作 526

13.3.1定义总线类型 527

13.3.2总线仲裁器 529

13.3.3使用8289的优先级逻辑 533

13.3.4并行优先级 534

13.3.5打印假脱机系统与接口 535

13.4磁盘存储器系统 544

13.4.1软盘存储器 544

13.4.2硬盘存储器 549

13.4.3光盘存储器 551

13.5视频显示器 553

13.5.1视频信号 553

13.5.2 TTL RGB显示器 554

13.5.3模拟RGB显示器 555

13.6小结 559

13.7习题 560

第14章 算术协处理器与MMX技术 562

14.1算术协处理器的数据格式 563

14.1.1带符号的整数 563

14.1.2二进制编码的十进制(BCD) 564

14.1.3浮点数 564

14.2 80X87的结构 567

14.2.1 80X87的内部结构 567

14.3指令系统 571

14.3.1数据传送指令 572

14.3.2算术运算指令 574

14.3.3比较指令 575

14.3.4超越运算 576

14.3.5常数操作 577

14.3.6协处理器控制指令 577

14.3.7协处理器指令 579

14.4算术协处理器编程 596

14.4.1计算圆的面积 596

14.4.2求谐振频率 597

14.4.3使用二次方程求根 598

14.4.4使用内存数组存储结果 599

14.4.5显示单精度浮点数 600

14.4.6从键盘读入混合数 602

14.5 MMX技术简介 604

14.5.1数据类型 604

14.5.2指令系统 605

14.6小结 617

14.7习题 618

第15章 总线接口 621

15.1 ISA总线 621

15.1.1 ISA总线的发展 621

15.1.2 8位ISA总线输出接口 621

15.1.3 8位ISA总线输入接口 626

15.1.4 16位ISA总线 628

15.2扩展的ISA (EISA)和VESA局部总线结构 628

15.2.1 IESA总线引脚图 629

15.2.2 EISA总线接口实例 629

15.2.3 VESA局部总线 632

15.2.4 VESA局部总线引脚图 632

15.3外围部件互连(PCI)总线 634

15.3.1 PCI总线的引脚图 634

15.3.2 PCI总线的地址/数据线 636

15.3.3配置空间 637

15.3.4 PCI总线的BIOS 639

15.3.5 PCI接口 642

15.4通用串行总线(USB) 642

15.4.1连接器 643

15.4.2 USB数据 643

15.4.3 USB命令 644

15.5高速图形端口(AGP) 646

15.6小结 647

15.7习题 647

第16章 80186、80188及80286微处理器 649

16.1 80186/80188的结构 649

16.1.1 80186/80188的型号 649

16.1.2 80186基本结构框图 650

16.1.3 80186/80188基本特征 651

16.1.4引脚 652

16.1.5直流工作特性 655

16.1.6 80186/80188时序 655

16.2 80186/80188增强功能编程 658

16.2.1外设控制块(PCB) 658

16.2.2 80186/80188的中断 659

16.2.3中断控制器 660

16.2.4定时器 665

16.2.5 DMA控制器 671

16.2.6片选单元 674

16.3 80C188EB接口举例 677

16.4 80286介绍 681

16.4.1硬件特性 681

16.4.2新增指令 683

16.4.3虚拟存储机 684

16.5小结 685

16.6习题 686

第17章 80386和80486微处理器 688

17.1 80386微处理器简介 688

17.1.1存储系统 692

17.1.2输入/输出系统 698

17.1.3存储器和I/O控制信号 699

17.1.4时序 700

17.1.5等待状态 701

17.2特定的80386寄存器 703

17.2.1控制寄存器 703

17.2.2调试和测试寄存器 704

17.3 80386存储管理 705

17.3.1描述符和选择子 705

17.3.2描述符表 709

17.3.3任务状态段 711

17.4向保护模式转换 713

17.5虚拟8086模式 729

17.6内存分页机制 730

17.6.1页目录 730

17.6.2页表 731

17.7 80486微处理器简介 734

17.7.1 80486DX和80486SX微处理器的引脚 735

17.7.2 80486的基本结构 739

17.7.3 80486存储系统 740

17.7.4 80486的存储管理 743

17.7.5 cache检测寄存器 744

17.8小结 745

17.9习题 746

第18章 Pentium和Pentium Pro微处理器 749

18.1 Pentium微处理器简介 749

18.1.1存储器系统 754

18.1.2输入/输出系统 756

18.1.3系统时序 756

18.1.4分支预测逻辑 758

18.1.5高速缓存结构 759

18.1.6超标量体系结构 759

18.2 Pentium的特定寄存器 759

18.2.1控制寄存器 759

18.2.2 EFLAG寄存器 760

18.2.3内置自检(BIST) 761

18.3 Pentium的存储器管理 761

18.3.1分页单元 761

18.3.2存储器管理模式 762

18.4 Pentium的新指令 763

18.5 Pentium Pro微处理器介绍 766

18.5.1 Pentium Pro的内部结构 768

18.5.2引脚连接 770

18.5.3存储器系统 773

18.5.4输入/输出系统 775

18.5.5系统时序 775

18.6 Pentium Pro的特性 776

18.6.1控制寄存器4 776

18.7小结 776

18.8习题 777

第19章 PentiumⅡ微处理器 779

19.1 Pentium Ⅱ微处理器简介 779

19.1.1存储器系统 785

19.1.2输入/输出系统 787

19.1.3系统时序 787

19.2 Pentium Ⅱ软件变化 788

19.2.1 CPUID指令 788

19.2.2 SYSENTER和SYSEXIT指令 788

19.2.3 FXSAVE和FXRSTOR指令 790

19.3小结 790

19.4习题 791

附录A 汇编语言、磁盘操作系统(DOS)、基本输入输出系统(BIOS)、鼠标及DPMI内存管理器 792

A.1 汇编语言的使用 792

A.2汇编语言的存储模型 794

A.2 DOS功能调用 798

A.3 BIOS功能调用 815

A.3.1 INT 10H 815

A.3.2 INT 11H 819

A.3.3 INT 12H 819

A.3.4 INT 13H 820

A.3.5 INT 14H 820

A.3.6 INT 15H 821

A.3.7 INT 16H 821

A.3.8 INT 17H 822

A.3.9 DOS低端内存的分配 822

A.3.10鼠标功能调用 823

A.3.11 DPMI控制功能 831

附录B 指令系统一览 845

附录C 标志位的变化 904

附录D 偶数号习题的标准答案 906