目 录
第1章 关于微处理器和计算机的
介绍
1.1历史背景
1.1.1机器时代
1.1.2电子时代
1.1.3程序设计的发展
1.1.4微处理器时代
1.1.5当今的微处理器
1.2基于微处理器的PC机系统
1.2.1存储器和输入/输出系统
1.2.2DOS操作系统
1.2.3微处理器
1.3数制系统
1.3.1数字
1.3.2位计数法
1.3.3任意进制转换成十进制
1.3.4十进制转换成任意进制
1.3.5二进制编码的十六进制
1.3.6补码和反码
1.4计算机中的数据格式
1.4.1ASCⅡ码
1.4.2BCD数据
1.4.3字节数据
1.4.4字数据
1.4.5双字数据
1.4.6实数
1.5本章小结
1.6思考与练习
第2章 微处理器及其结构
2.1微处理器的内部结构
2.2实地址方式下的存储器寻址
2.2.1段地址和偏移地址
2.2.2默认(缺省)的段地址寄存器和偏移地址寄存器
2.2.3段和偏移寻址机制允许重定位
2.3保护虚拟地址方式下存储器寻址
2.3.1选择子和描述符
2.3.2对程序不可见的寄存器
2.4存储器分页机制
2.4.1分页寄存器
2.4.2页目录和页表
2.5本章小结
2.6思考与练习
第3章 寻址方式
3.1与数据有关的寻址方式
3.1.1寄存器寻址
3.1.2立即寻址
3.1.3直接数据寻址
3.1.4寄存器间接寻址
3.1.5基址变址寻址
3.1.6寄存器相对寻址
3.1.7相对基址变址寻址
3.1.8带比例因子的变址寻址
3.1.9结构
3.2与程序转移地址有关的寻址方式
3.2.1直接程序存储器寻址
3.2.2相对程序存储器寻址
3.2.3间接程序存储器寻址
3.3堆栈存储器寻址方式
3.4本章小结
3.5思考与练习
第4章 数据传送指令
4.1.机器语言
4.1.1为什么要了解机器语言
4.1.2机器语言
4.2PUSH/POP指令
4.2.1PUSH指令
4.2.2POP指令
4.2.3初始化堆栈
4.3地址传送指令
4.3.1LEA指令
4.3.2LDSLES、LFS、LGS和LSS指令
4.4数据串传送指令
4.4.1方向标志
4.4.2DI和SI
4.4.3LODS指令
4.4.4STOS指令
4.4.5带REP的STOS指令
4.4.6MOVS指令
4.4.7INS指令
4.4.8OUTS指令
4.5其他数据传送指令
4.5.1XCHG指令
4.5.2LAHF和SAHF指令
4.5.3XLAT指令
4.5.4IN和OUT指令
4.5.5MOVSX和MOVZX指令
4.5.6BSWAP指令
4.5.7CMOV指令
4.6段超越前缀
4.7汇编程序详述
4.7.1伪操作
4.7.2存储器组织
4.7.3一个实例程序
4.8本章小结
4.9思考与练习
第5章 算术和逻辑运算指令
5.1加法、减法和比较指令
5.1.1加法指令
5.1.2减法指令
5.1.3比较指令
5.2乘法和除法指令
5.2.1乘法指令
5.2.2除法指令
5.3BCD和ASCⅡ码的算术运算指令
5.3.1BCD算术运算
5.3.2ASCⅡ算术运算指令
5.4基本逻辑运算指令
5.4.1AND指令
5.4.2OR指令
5.4.3XOR指令
5.4.4测试指令和位测试指令
5.4.5NOT和NEG指令
5.5移位和循环移位指令
5.5.1移位指令
5.5.2循环移位指令
5.5.3位扫描指令
5.6串比较指令
5.6.1SCAS指令
5.6.2CMPS指令
5.7本章小结
5.8思考与练习
第6章 程序控制指令
6.1转移指令
6.1.1无条件转移指令(JMP)
6.1.2条件转移和条件置位指令
6.1.3LOOP指令
6.2对汇编语言程序流程的控制
6.2.1条件汇编语句.IF
6.2.2DO〕WHILE循环语句
6.2.3REPEAT UNTIL循环语句
6.3过程(procedure)
6.3.1CALL指令
6.3.2RET指令
6.4中断
6.4.1中断向量
6.4.2中断指令
6.4.3中断控制指令
6.4.4PC机中的中断分配
6.5机器控制及其他指令
6.5.1对进位标志的控制
6.5.2WAIT指令
6.5.3HLT指令
6.5.4NOP指令
6.5.5LOCK前缀
6.5.6ESC指令
6.5.7BO〕UND指令
6.5.8ENTER和LEAVE指令
6.6本章小结
6.7思考与练习
第7章 微处理器级的程序设计
7.1模块化程序设计
7.1.1汇编程序和连接程序
7.1.2PUBLIC和EXTRN伪操作
7.1.3库
7.1.4宏
7.1.5宏序列中的条件语句
7.1.6条件汇编语句
7.1.7在宏中使用条件语句
7.1.8模块化的程序设计方法
7.2使用键盘和视频显示器
7.2.1用DOS功能调用读键盘
7.2.2用DOS功能调用写视频显示器
7.2.3使用BIOS视频功能调用
7.2.4一个用于显示字符的宏
7.2.5鼠标
7.2.6检测鼠标的存在
7.2.7获取鼠标的类型及其驱动程序的版本号
7.2.8使用鼠标
7.3数据转换
7.3.1将二进制数转换成ASCII码
7.3.2将ASCII码转换成二进制数
7.3.3显示和读取十六进制数据
7.3.4使用查询表实现数据转换
7.3.5一个使用数据转换的实例 程序
7.4磁盘文件
7.4.1磁盘的组织
7.4.2顺序存取文件
7.4.3随机存取文件
7.5程序举例
7.5.1计算器程序
7.5.2数字排序程序
7.5.3十六进制文件的显示
7.6中断接管
7.6.1拦截一个中断
7.6.2TSR报时程序示例
7.6.3热键程序举例
7.7本章小结
7.8思考与练习
第8章 8086/8088硬件描述
8.1引脚及其功能
8.1.1引脚
8.1.2电源要求
8.1.3直流特性
8.1.4引脚功能
8.2时钟发生器(8284A)
8.2.18284A时钟发生器
8.2.28284A的操作
8.3总线缓冲与锁存
8.3.1分离总线信息
8.3.2缓冲系统
8.4总线时序
8.4.1基本的总线操作
8.4.2一般的时序
8.4.3读时序
8.4.4写时序
8.5就绪与等待状态
8.5.1READY输入信号
8.5.2RDY与8284A
8.6最小方式与最大方式
8.6.1最小方式操作
8.6.2最大方式操作
8.6.38288总线控制器
8.7本章小结
8.8思考与练习
第9章 存储器接口
9.1存储器器件
9.1.1存储器的引脚
9.1.2ROM
9.1.3静态RAM(SRAM)器件
9.1.4动态RAM(DRAM)
9.2地址译码
9.2.1为什么要译码
9.2.2简单的与非门译码器
9.2.33-8译码器(74LS138)
9.2.4双2-4译码器(74LS139)
9.2.5PROM地址译码器
9.2.6PLD可编程译码器
9.38088与80188(8位)存储器接口
9.3.1基本的8088/80188存储器接口
9.3.2连接f1ash闪速存储器
9.3.3用奇偶性检查存储器错误
9.3.4错误校正
9.48086、80186 80286与80386SX(16位)存储器接口
9.580386DX与80486(32位)存储器接口
9.5.1存储体
9.5.232位存储器接口
9.6Pentium与PentiumPro(64位)存储器接口
9.7动态RAM
9.7.1DRAM回顾
9.7.2EDO存储器
9.7.3DRAM控制器
9.8本章小结
9.9思考与练习
第10章 基本I/O接口
10.1I/O接口简介
10.1.1I/O指令
10.1.2独立编址I/O与存储器映象I/O
10.1.3PC机I/O映象
10.1.4基本输入输出接口
10.1.5信号交换
10.2I/O端口地址译码
10.2.1译码8位I/O地址
10.2.2译码16位I/O地址
10.2.38位与16位I/O端口
10.2.432位I/O端口
10.3可编程外围接口
10.3.18255概述
10.3.2编程82C55
10.3.3方式0操作
10.3.4方式1选通输入
10.3.5方式1选通输出
10.3.6方式2双向操作
10.3.782C55方式总结
10.48279可编程键盘/显示器接口
10.4.18279概述
10.4.28279与微处理器的接口
10.4.3键盘接口
10.4.46位显示器接口
10.58254可编程间隔定时器
10.5.18254功能描述
10.5.2编程8254
10.5.3直流电动机的转速与方向控制
10.616550可编程通信接口
10.6.1异步串行数据
10.6.216550功能描述
10.6.3编程16550
10.7模/数转换器(ADC)与数/模转换器(DAC)
10.7.1DAC0830数/模转换器
10.7.2ADC0804模/数转换器
10.7.3ADC0804与DAC0830应用举例
10.8本章小结
10.9思考与练习
第11章 中断
11.1基本中断处理
11.1.1中断的目的
11.1.2中断
11.1.3中断指令:BOUND,INTO,INT,INT3和IRET
11.1.4实方式中断操作
11.1.5保护方式中断操作
11.1.6中断标志位
11.1.7将一个中断向量存于向量表
11.2硬件中断
11.2.1INTR与INTA
11.2.282C55键盘中断
11.3扩充中断结构
11.3.1用74ALS244扩充
11.3.2菊花链中断
11.48259A可编程中断控制器
11.4.18259A概述
11.4.2连接单个8259A
11.4.3级连多个8259A
11.4.4编程8259A
10.4.58259A编程举例
11.5实时时钟
11.6本章小结
11.7思考与练习
第12章 直接存储器存取以及DMA控制下的I/O
12.1基本的DMA操作
12.28237DMA控制器
12.2.1软件命令
12.2.2地址寄存器和字计数寄存器编程
12.2.38237和80×86微处理器相连
12.2.4用8237实现存储器到存储器传输
12.2.5DMA控制的打印机接口
12.3共享总线操作
12.3.1定义总线类型
12.3.2总线仲裁器
12.3.3使用8289的优先级逻辑
12.3.4打印假脱机系统和接口
12.4磁盘存储器系统
12.4.1软盘存储器
12.4.2硬盘存储器
12.4.3光盘存储器
12.5视频显示器
12.5.1视频信号
12.5.2TTLRGB监视器
12.5.3模拟RGB监视器
12.6本章小结
12.7思考与练习
第13章 协处理器
13.1协处理器的数据格式
13.1.1带符号的整数
13.1.2二进制编码的十进制数(BCD)
13.1.3浮点数
13.280×87结构
13.3指令系统
13.3.1数据传送指令
13.3.2算术指令
13.3.3比较指令
13.3.4超越指令
13.3.5常数操作
13.3.6协处理器控制指令
13.3.7协处理器指令
13.4协处理器编程
13.4.1计算圆的面积
13.4.2求共振频率
13.4.3通过二次方程求根
13.4.4应用存储数组存储结果
13.4.5显示单精度浮点数
13.4.6键盘读入混合数
13.5本章小结
13.6思考与练习
第14章 总线接口
14.1ISA总线
14.1.1ISA总线的发展
14.1.28位ISA总线输出接口
14.1.38位ISA总线输入接口
14.1.416位ISA总线
14.2扩展的ISA(EISA)和VESA局部总线
14.2.1EISA总线引脚图
14.2.2关于EISA总线接口的例子
14.2.3VESA局部总线
14.2.4VESA局部总线引脚图
14.3外围部件连接(PCi)总线
14.3.1PCI总线的引脚图
14.3.2PCI总线的地址/数据连线
14.3.3PCI总线命令
14.3.4配置空间
14.3.5PCI总线的BIOS
14.4本章小结
14.5思考与练习
第15章 80186、80188及80286微处理器
15.180186/80188的结构
15.1.180186/80188的各型号
15.1.280186基本结构框图
15.1.380186/80188基本特征
15.1.4引脚
15.1.5直流操作特性
15.1.680186/80188时序
15.280186/80188增强功能编程
15.2.1外围设备控制块(Peripheral ConlrolBlock)
15.2.280186/80188中断
15.2.3中断控制器
15.2.4定时器
15.2.5DMA控制器
15.2.6片选单元
15.380C188EB接口举例
15.480286简介
15.4.1硬件特性
15.4.2新增指令
15.4.3虚拟存储机
15.5本章小结
15.6思考与练习
第16章 80386和80486微处理器
16.180386微处理器简介
16.1.1存储器系统
16.1.2输入/输出系统
16.1.3存储器和I/O控制信号
16.1.4时序
16.1.5等待状态
16.2特殊的80386寄存器
16.2.1控制寄存器
16.2.2排错和测试寄存器
16.380386存储管理
16.3.1描述符和选择子
16.3.2描述符表
16.3.3任务状态段(TSS)
16.4向保护方式的转换
16.5虚拟8086方式
16.6存储器分页机制
16.6.1页目录
16.6.2页表
16.780486微处理器简介
16.7.180486DX和80486SX微处理器的引脚
16.7.280486基本结构
16.7.380486存储系统
16.7.480486存储管理
16.7.5Cache检测
16.8本章小结
16.9 思考与练习
第17章 Pentium与PentiumPro微处理器
17.1Pentium微处理器简介
17.1.1存储器系统
17.1.2输入/输出系统
17.1.3系统时序
17.1.4分支预测逻辑
17.1.5cache结构
17.1.6超标量体系结构
17.2特殊的Pentium寄存器
17.2.1控制寄存器
17.2.2EFLAG寄存器
17.2.3内置自检(BIST)
17.3Pentium存储器管理
17.3.1分页单元
17.3.2存储器管理模式
17.4新的Pentium指令
17.5PentiumPro微处理器简介
17.5.1PentiumPro的内部结构
17.5.2引脚连接
17.5.3存储器系统
17.5.4输入/输出系统
17.5.5系统时序
17.6特殊的PentiumPro特性
17.6.1控制寄存器4
17.7本章小结
17.8思考与练习
附录A 汇编程序、DOS、BIOS 鼠标
及DPMI内存管理程序
A.1使用汇编程序
A.2存储模式
A.3DOS功能调用
A.4BIOS功能调用
A.4.1INT10H
A.4.2INT11H
A.4.3INT12H
A.4.4INT13H
A.4.5INT14H
A.4.6INT15H
A.4.7INT16H
A.4.8INT17H
A.4.9DOS低端存储区
A.5鼠标功能
A.6DPMI控制功能
附录B 指令系统一览
附录C 标志位的变化
附录D 思考与练习题中偶数题
答案