《INTEL微处理器》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)BARRY B.BREY著;金惠华 艾明晶 尚利宏等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111228271
  • 页数:686 页
图书介绍:本书讲解了Intel系列微处理器。

第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系统 12

1.2.1 存储器和I/O系统 12

1.2.2 微处理器 16

1.3 数制 19

1.3.1 数字 19

1.3.2 按位计数法 20

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

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

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

1.3.6 补码 23

1.4 计算机数据格式 24

1.4.1 ASCII和Unicode数据 24

1.4.2 BCD数据 26

1.4.3 字节数据 27

1.4.4 字数据 28

1.4.5 双字数据 29

1.4.6 实数 30

1.5 小结 32

1.6 习题 33

第2章 微处理器及其体系结构 35

2.1 微处理器的内部体系结构 35

2.2 实模式存储器寻址 39

2.2.1 段和偏移 39

2.2.2 默认段和偏移寄存器 40

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

2.3 保护模式存储器寻址简介 41

2.3.1 选择子和描述符 42

2.3.2 程序不可见寄存器 44

2.4 内存分页 46

2.4.1 分页寄存器 46

2.4.2 页目录和页表 47

2.5 小结 49

2.6 习题 49

第3章 寻址方式 51

3.1 数据寻址方式 51

3.1.1 寄存器寻址 53

3.1.2 立即寻址 55

3.1.3 直接数据寻址 57

3.1.4 寄存器间接寻址 59

3.1.5 基址加变址寻址 62

3.1.6 寄存器相对寻址 63

3.1.7 相对基址加变址寻址 64

3.1.8 比例变址寻址 66

3.1.9 数据结构 67

3.2 程序存储器寻址 68

3.2.1 直接程序存储器寻址 68

3.2.2 相对程序存储器寻址 69

3.2.3 间接程序存储器寻址 69

3.3 堆栈存储器寻址 70

3.4 小结 72

3.5 习题 74

第4章 数据传送指令 76

4.1 MOV回顾 76

4.2 PUSH/POP指令 82

4.2.1 PUSH指令 83

4.2.2 POP指令 84

4.2.3 初始化堆栈 85

4.3 装入有效地址 86

4.3.1 LEA指令 86

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

4.4 数据串传送 89

4.4.1 方向标志 89

4.4.2 DI和SI 89

4.4.3 LODS指令 89

4.4.4 STOS指令 90

4.4.5 MOVS指令 91

4.4.6 INS指令 93

4.4.7 OUTS指令 94

4.5 其他数据传送指令 94

4.5.1 XCHG指令 94

4.5.2 LAHF和SAHF指令 95

4.5.3 XLAT指令 95

4.5.4 IN和OUT指令 96

4.5.5 MOVSX和MOVZX指令 97

4.5.6 BSWAP指令 98

4.5.7 CMOV指令 98

4.6 段超越前缀 98

4.7 汇编程序详述 99

4.7.1 伪指令 99

4.7.2 存储器组织 103

4.7.3 程序举例 105

4.8 小结 107

4.9 习题 108

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

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

5.1.1 加法指令 110

5.1.2 减法指令 114

5.1.3 比较指令 116

5.2 乘法和除法指令 117

5.2.1 乘法指令 117

5.2.2 除法指令 119

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

5.3.1 BCD算术运算指令 121

5.3.2 ASCII算术运算指令 122

5.4 基本逻辑运算指令 124

5.4.1 AND指令 124

5.4.2 OR指令 125

5.4.3 XOR指令 126

5.4.4 测试和位测试指令 127

5.4.5 NOT指令和NEG指令 128

5.5 移位指令和循环移位指令 128

5.5.1 移位指令 128

5.5.2 双精度移位指令 129

5.5.3 循环移位指令 130

5.5.4 位扫描指令 130

5.6 串比较指令 131

5.6.1 SCAS指令 131

5.6.2 CMPS指令 131

5.7 小结 132

5.8 习题 133

第6章 程序控制指令 135

6.1 转移指令 135

6.1.1 无条件转移指令 135

6.1.2 条件转移和条件设置 139

6.1.3 LOOP指令 142

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

6.2.1 WHILE循环 145

6.2.2 REPEAT-UNTIL循环 146

6.3 过程 147

6.3.1 CALL指令 148

6.3.2 RET指令 150

6.4 中断概述 151

6.4.1 中断向量 151

6.4.2 中断指令 152

6.4.3 中断控制 153

6.4.4 PC机的中断 153

6.5 机器控制及其他指令 154

6.5.1 控制进位标志位 154

6.5.2 WAIT指令 154

6.5.3 HLT指令 155

6.5.4 NOP指令 155

6.5.5 LOCK前缀 155

6.5.6 ESC指令 155

6.5.7 BOUND指令 155

6.5.8 ENTER和LEAVE指令 155

6.6 小结 156

6.7 习题 157

第7章 在C/C++中使用汇编语言 159

7.1 在16位DOS应用程序中使用汇编语言与C/C++语言 159

7.1.1 基本规则和简单程序 159

7.1.2 _asm块中不能使用的MASM功能 161

7.1.3 使用字符串 161

7.1.4 使用数据结构 163

7.1.5 混合语言编程的例子 165

7.2 在32位应用程序中使用汇编语言与Visual C/C++语言 166

7.2.1 使用控制台I/O访问键盘和显示器的例子 166

7.2.2 直接访问I/O端口 168

7.2.3 开发Windows的Visual C++应用程序 168

7.3 独立的汇编目标码 175

7.3.1 用Visual C++链接汇编语言 175

7.3.2 在C/C++程序中添加新的汇编语言指令 179

7.4 小结 179

7.5 习题 180

第8章 微处理器程序设计 181

8.1 模块化程序设计 181

8.1.1 汇编程序和链接程序 181

8.1.2 PUBLIC和EXTRN 183

8.1.3 库 184

8.1.4 宏 187

8.2 使用键盘和视频显示器 189

8.2.1 读取键盘 189

8.2.2 使用视频显示器 192

8.2.3 在程序中使用ActiveX控件 195

8.2.4 鼠标 198

8.3 数据转换 200

8.3.1 从二进制转换为ASCII码 200

8.3.2 ASCII码转换为二进制 201

8.3.3 显示和读入十六进制数 202

8.3.4 使用查找表实现数据转换 203

8.3.5 使用查找表的示例程序 204

8.4 磁盘文件 206

8.4.1 磁盘的组织 206

8.4.2 文件名 207

8.4.3 顺序存取文件 208

8.4.4 随机存取文件 213

8.5 程序举例 215

8.5.1 时间/日期显示程序 215

8.5.2 数字排序程序 216

8.5.3 数据加密 218

8.6 小结 219

8.7 习题 220

第9章 8086/8088硬件特性 222

9.1 引脚和引脚功能 222

9.1.1 引脚 222

9.1.2 电源要求 223

9.1.3 直流特性 223

9.1.4 引脚定义 223

9.2 时钟产生器8284A 226

9.2.1 8284A时钟产生器 226

9.2.2 8284A的操作 227

9.3 总线缓冲及锁存 227

9.3.1 多路分离总线 228

9.3.2 缓冲系统 230

9.4 总线时序 231

9.4.1 基本的总线操作 231

9.4.2 一般的时序 232

9.4.3 读时序 232

9.4.4 写时序 235

9.5 就绪和等待状态 235

9.5.1 READY输入 235

9.5.2 RDY和8284A 236

9.6 最小模式与最大模式 238

9.6.1 最小模式操作 238

9.6.2 最大模式操作 238

9.6.3 8288总线控制器 238

9.7 小结 240

9.8 习题 240

第10章 存储器接口 242

10.1 存储器件 242

10.1.1 存储器引脚 242

10.1.2 ROM存储器 243

10.1.3 静态RAM(SRAM)器件 245

10.1.4 动态RAM(DRAM)存储器 248

10.2 地址译码 252

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

10.2.2 简单的与非门译码器 252

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

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

10.2.5 PLD可编程译码器 256

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

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

10.3.2 与快闪存储器接口 262

10.3.3 错误校正 263

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

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

10.5.1 存储体 271

10.5.2 32位存储器接口 272

10.6 Pentium~Pentium4(64位)存储器接口 274

10.7 DRAM 277

10.7.1 DRAM回顾 277

10.7.2 EDO存储器 279

10.7.3 SDRAM 279

10.7.4 DDR 279

10.7.5 DRAM控制器 280

10.8 小结 280

10.9 习题 281

第11章 基本I/O接口 282

11.1 I/O接口概述 282

11.1.1 I/O指令 282

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

11.1.3 PC机I/O映像 284

11.1.4 基本输入输出接口 284

11.1.5 握手 286

11.1.6 关于接口电路的注释 287

11.2 I/O端口地址译码 289

11.2.1 译码8位I/O地址 289

11.2.2 译码16位I/O地址 290

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

11.2.4 32位I/O端口 293

11.3 可编程外围设备接口 296

11.3.1 82C55基本描述 296

11.3.2 编程82C55 297

11.3.3 方式0操作 299

11.3.4 与82C55接口的LCD显示器 303

11.3.5 方式1选通输入 312

11.3.6 方式1选通输出 314

11.3.7 方式2双向操作 315

11.3.8 82C55方式小结 317

11.4 8254可编程间隔定时器 318

11.4.1 8254功能描述 318

11.4.2 编程8254 319

11.4.3 直流电机速度与方向控制 323

11.5 16550可编程通信接口 326

11.5.1 异步串行数据 326

11.5.2 16550功能描述 326

11.5.3 编程16550 328

11.6 模/数转换器(ADC)与数/模转换器(DAC) 332

11.6.1 DAC0830数/模转换器 332

11.6.2 ADC080X模/数转换器 334

11.6.3 使用ADC0804和DAC0830的实例 335

11.7 小结 337

11.8 习题 338

第12章 中断 340

12.1 基本中断处理 340

12.1.1 中断的目的 340

12.1.2 中断 341

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

12.1.4 实模式中断操作 343

12.1.5 保护模式中断操作 344

12.1.6 中断标志位 344

12.1.7 将一个中断向量存入向量表 345

12.2 硬件中断 346

12.2.1 INTR和INTA 347

12.2.2 82C55键盘中断 350

12.3 扩展中断结构 352

12.3.1 使用74ALS244扩展 352

12.3.2 菊花链中断 353

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

12.4.1 8259A概述 354

12.4.2 连接单个8259A 355

12.4.3 级联多个8259A 356

12.4.4 编程8259A 356

12.4.5 8259A编程实例 360

12.5 中断实例 367

12.5.1 实时时钟 367

12.5.2 中断处理键盘 369

12.6 小结 371

12.7 习题 371

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

13.1 基本DMA操作 373

13.2 8237 DMA控制器 374

13.2.1 软件命令 378

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

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

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

13.2.5 DMA处理的打印机接口 384

13.3 共享总线操作 386

13.3.1 定义的总线类型 387

13.3.2 总线仲裁器 388

13.4 磁盘存储器系统 392

13.4.1 软盘存储器 392

13.4.2 笔式驱动器 395

13.4.3 硬盘存储器 395

13.4.4 光盘存储器 397

13.5 视频显示器 398

13.5.1 视频信号 399

13.5.2 TTL RGB显示器 399

13.5.3 模拟RGB显示器 400

13.6 小结 403

13.7 习题 404

第14章 算术协处理器、MMX和SIMD技术 405

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

14.1.1 带符号的整数 406

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

14.1.3 浮点数 407

14.2 80X87的结构 408

14.3 指令系统 413

14.3.1 数据传送指令 413

14.3.2 算术运算指令 414

14.3.3 比较指令 415

14.3.4 超越运算指令 416

14.3.5 常数操作 416

14.3.6 协处理器控制指令 416

14.3.7 协处理器指令 418

14.4 算术协处理器编程 432

14.4.1 计算圆的面积 432

14.4.2 求谐振频率 433

14.4.3 使用一元二次方程求根 434

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

14.4.5 将单精度浮点数转换为字符串 436

14.5 MMX技术简介 437

14.5.1 数据类型 437

14.5.2 指令系统 438

14.6 SSE技术概述 447

14.6.1 浮点数 447

14.6.2 指令集 448

14.6.3 控制/状态寄存器 448

14.6.4 编程实例 449

14.6.5 优化 452

14.7 小结 452

14.8 习题 453

第15章 总线接口 455

15.1 ISA总线 455

15.1.1 ISA总线的发展 455

15.1.2 8位ISA总线输出接口 455

15.1.3 8位ISA总线输入接口 460

15.1.4 16位ISA总线 462

15.2 外围部件互连(PCI)总线 462

15.2.1 PCI总线的引脚图 463

15.2.2 PCI总线的地址/数据线 463

15.2.3 配置空间 464

15.2.4 PCI总线的BIOS 466

15.2.5 PCI接口 468

15.2.6 PCI Express总线 468

15.3 并行打印机接口(LPT) 469

15.3.1 端口介绍 469

15.3.2 使用并行端口而不需要ECP支持 470

15.4 串行COM端口 471

15.5 通用串行总线(USB) 473

15.5.1 连接器 473

15.5.2 USB数据 473

15.5.3 USB命令 474

15.5.4 USB总线节点 475

15.5.5 USBN9604/3编程 475

15.6 高速图形端口(AGP) 478

15.7 小结 478

15.8 习题 478

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

16.1 80186/80188的结构 480

16.1.1 80186/80188的型号 480

16.1.2 80186基本结构框图 481

16.1.3 80186/80188基本特征 481

16.1.4 引脚 483

16.1.5 直流工作特性 485

16.1.6 80186/80188时序 485

16.2 80186/80188增强功能编程 488

16.2.1 外设控制块(PCB) 488

16.2.2 80186/80188的中断 488

16.2.3 中断控制器 489

16.2.4 定时器 493

16.2.5 DMA控制器 498

16.2.6 片选单元 500

16.3 80C188EB接口举例 503

16.4 实时操作系统(RTOS) 509

16.4.1 实时操作系统(RTOS)概述 509

16.4.2 实例系统 510

16.4.3 线程系统 512

16.5 80286简介 516

16.5.1 硬件特性 516

16.5.2 新增指令 517

16.5.3 虚拟存储机 518

16.6 小结 519

16.7 习题 519

第17章 80386和80486微处理器 521

17.1 80386微处理器简介 521

17.1.1 存储系统 523

17.1.2 输入/输出系统 528

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

17.1.4 时序 530

17.1.5 等待状态 531

17.2 特定的80386寄存器 531

17.2.1 控制寄存器 531

17.2.2 调试和测试寄存器 533

17.3 80386存储管理 534

17.3.1 描述符和选择子 534

17.3.2 描述符表 537

17.3.3 任务状态段(TSS) 538

17.4 向保护模式转换 540

17.5 虚拟8086模式 549

17.6 内存分页机制 550

17.6.1 页目录 550

17.6.2 页表 550

17.7 80486微处理器简介 552

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

17.7.2 80486的基本结构 556

17.7.3 80486的存储系统 557

17.8 小结 559

17.9 习题 559

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

18.1 Pentium微处理器简介 561

18.1.1 存储器系统 564

18.1.2 输入/输出系统 565

18.1.3 系统时序 565

18.1.4 分支预测逻辑 567

18.1.5 高速缓存结构 567

18.1.6 超标量体系结构 567

18.2 Pentium的特定寄存器 567

18.2.1 控制寄存器 567

18.2.2 EFLAG寄存器 568

18.2.3 内置自检(BIST) 568

18.3 Pentium的存储器管理 569

18.3.1 分页单元 569

18.3.2 存储器管理模式 569

18.4 Pentium的新指令 570

18.5 Pentium Pro微处理器简介 574

18.5.1 Pentium Pro的内部结构 575

18.5.2 引脚连接 576

18.5.3 存储器系统 579

18.5.4 输入/输出系统 580

18.5.5 系统时序 580

18.6 Pentium Pro的特性 580

18.7 小结 581

18.8 习题 582

第19章 Pentium Ⅱ、Pentium Ⅲ和Pentium 4微处理器 583

19.1 Pentium Ⅱ微处理器简介 583

19.1.1 存储器系统 588

19.1.2 输入/输出系统 589

19.1.3 系统时序 589

19.2 Pentium Ⅱ软件变化 590

19.2.1 CPUID指令 590

19.2.2 SYSENTER和SYSEXIT指令 590

19.2.3 FXSAVE和FXRSTOR指令 591

19.3 Pentium Ⅲ 591

19.3.1 芯片组 591

19.3.2 总线 591

19.3.3 引脚 592

19.4 Pentium 4 592

19.4.1 存储器接口 593

19.4.2 寄存器组 593

19.4.3 超线程技术 594

19.4.4 CPUID 595

19.4.5 特定模型寄存器 597

19.4.6 性能监视寄存器 598

19.4.7 64位扩展技术 598

19.5 小结 599

19.6 习题 600

附录A 汇编程序、Visual C++和DOS 601

附录B 指令系统一览 609

附录C 标志位的变化 669

附录D 偶数号习题的答案 671