1.1 计算机的基本结构与组成 1
1.1.1 电子计算机的基本组成 1
第一章 计算机基础 1
1.1.2 微机硬件系统结构 2
1.1.3 存储器组织 3
1.2 计算机中的数制与码制 4
1.2.1 计算机中采用的数制 4
1.2.2 计算机中的码制 7
1.3 机器语言·汇编语言·高级语言 11
1.3.1 指令和程序 11
1.3.2 机器语言(Machine Language) 11
1.3.3 汇编语言(Assembly Language) 12
1.4.1 微处理器(MPU或CPU)的结构 13
1.3.4 高级语言(High Level Language) 13
1.4 计算机执行程序的过程 13
1.4.2 计算机执行指令的过程 14
思考与练习一 16
第二章 MCS—51单片机系统结构 17
2.1 MCS--51的结构框图和功能特性 17
2.1.1 8051的功能特性 17
2.1.2 MCS--51的结构框图 17
2.1.3 MCS--51中的CPU 19
2.2 MCS--51的存储器配置 20
2.3 MCS--51程序设计模型 26
思考与练习二 27
3.1.1 什么是寻址方式 28
3.1.2 MCS--51单片机的寻址方式 28
3.1 MCS--51单片机的寻址方式 28
第三章 MCS--51单片机指令系统及汇编语言程序设计基础 28
3.1.3 关于寻址方式的补充说明 30
3.2 MCS--51单片机的指令系统 31
3.2.1 MCS--51单片机指令系统分类 31
3.2.2 数据传送指令 32
3.2.3 算术操作指令 34
3.2.4 逻辑操作类指令 36
3.2.5 控制程序转移指令 37
3.2.6 布尔变量操作类指令 39
3.3 MCS--51单片机汇编语言的基本约定 42
3.3.1 MCS--51汇编程序所支持的伪指令 42
3.3.2 MCS--51汇编语言程序格式的有关约定 43
3.4 MCS--51单片机程序设计基础 44
3.4.1 程序设计的步骤 44
3.4.2 顺序结构与简单程序设计 48
3.4.3 分支结构程序设计 49
6.3.1 概述 50
3.4.4 循环结构程序设计 53
3.4.5 子程序设计 57
思考与练习三 70
第四章 MCS--51单片机应用程序开发过程 72
4.1 单片机应用系统研制的一般过程 72
4.1.1 MCS--51应用系统研制的特点 72
1.1.2 MCS--51应用系统研制流程 72
4.2 单片机应用系统研制工具——开发系统 74
4.2.1 概述 74
4.2.2 DVCC综合软件包括结构 74
4.2.3 启动方法 74
4.2.4 源程序编辑 75
4.2.5 屏幕编辑(SCREEN) 77
4.2.6 MCS--51汇编使用说明 78
4.2.7 MCS--51反汇编模块 81
4.2.8 通迅和调试 81
4.2.9 MCS--51—Ⅱ仿真器及SICE—Ⅲ仿真器的简要说明 82
4.3 单片机应用系统的软件设计与调试 83
4.3.1 总体设计 83
4.3.2 软件设计 83
4.3.3 程序编辑、汇编的几种方法 83
4.3.4 计算程序的调试方法 84
4.3.5 通讯和I/O实时处理程序的调试 84
4.3.6 综合调试 84
思考与练习四 84
第五章 MCS--51单片机应用程序设计 85
5.1 常用运算程序设计 85
5.1.1 定点数运算 85
5.1.2 十进制数运算 91
5.1.3 浮点数运算程序设计基础 93
5.1.4 数据处理应用程序举例 100
5.2 MCS--51输入输出接口程序设计 108
5.2.1 CPU与外设传送数据的控制方式 108
5.2.2 并行接口的输入输出程序设计 109
5.3 串行口通讯程序设计 125
5.3.1 串行口的专用寄存器SCON 125
5.3.2 串行口的工作方式 126
5.3.3 方式1点与点的异步通讯 127
5.4 A/D 及D/A转换接口程序设计 130
5.4.1 基本概念 130
5.4.2 数/模(D/A)转换 130
5.4.3 模/数(A/D)转换 131
5.4.4 典型应用实例 134
思考与练习五 136
6.1.1 中央处理器(CPU) 137
第六章 16位单片机MCS--96 137
6.1 MCS--96单片机结构及功能特性 137
6.1.2 存储器与特殊功能寄存器组(SFR) 138
6.1.3 中断 141
6.1.4 输入/输出口 141
6.1.5 定时器和高速输入输出部件(HSI0) 143
6.1.6 串行口 145
6.1.7 A/D转换器与脉宽调制器 145
6.1.8 监视定时器(WDT)和系统复位 146
6.1.9 系统复位 146
6.2 MCS--96的指令系统 147
6.3 MCS--96程序设计基础 150
6.3.2 中断系统编程实例 151
6.3.3 定时器应用程序实例 152
6.3.4 高速输入部件HSI应用程序举例 154
6.3.5 高速输出部件HSO应用程序举例 156
6.3.6 A/D和PWM(D/A)应用程序设计实例 160
6.3.7 串行口应用程序设计 163
6.3.8 四个字节乘法子程序 167
思考与练习六 168
第七章 8086/8088系统结构 169
7.1 8088 CPU的功能结构 169
7.1.1 8088 CPU的内部寄存器 169
7.1.2 8088 CPU的两大功能结构 172
思考与练习七 174
7.2 8088与8086微处理器的差别 174
8.1 寻址方式 175
8.1.1 操作数类型 175
第八章 8088/8086指令系统 175
8.1.2 寻址方式 176
8.1.3 寻址方式小结 180
8.2 8088/8086指令系统 181
8.2.1 数据传送指令 181
8.2.2 算术运算指令 187
8.2.3 逻辑运算指令 196
8.2.4 移位指令 197
8.2.5 转移指令 200
8.2.6 字符串操作指令 205
8.2.7 处理器控制指令 209
8.2.9 中断指令 210
8.2.8 输入输出指令 210
8.3 小结 212
8.3.1 如何掌握指令系统 212
8.3.2 8088指令系统的特点 212
思考与练习八 214
第九章 8088/8086汇编语言 216
9.1 汇编语言语句 216
9.1.1 8088汇编语言程序的一个例子 216
9.1.2 汇编语言语句及结构 219
9.2 汇编语言伪指令 224
9.2.1 符号定义伪指令 224
9.2.2 数据定义伪指令 225
9.2.3 段和模块定义伪指令 226
9.2.4 过程定义伪指令 228
9.2.5 模块通讯伪指令 229
9.2.6 列表控制伪指令 231
9.2.7 其他伪指令说明 231
9.3 汇编语言程序结构 232
9.3.1 汇编语言源程序的一般结构 232
9.3.2 对汇编源程序中的几个问题的说明 233
9.4 条件汇编与宏操作伪指令 237
9.4.1 宏操作伪指令 237
9.4.2 宏指令与子程序的区别 239
9.4.3 条件汇编 239
9.5 结构和记录 241
9.5.1 结构 241
9.5.2 记录 242
思考与练习九 244
第十章 8086/8088基本程序设计 246
10.1 顺序程序设计 246
10.1.1 简单算术运算及逻辑运算顺序程序 246
10.1.2 字符处理和代码转换程序 248
10.1.3 对表项进行传送及处理 250
10.2 分支程序设计 252
10.3 循环程序设计 256
10.3.1 循环程序的两种基本的结构 256
10.3.2 计数控制的循环 257
10.3.3 条件控制的循环程序 262
10.3.4 用逻辑尺控制的循环 263
10.4 子程序设计 264
10.4.1 子程序与主程序 264
10.4.2 子程序的段内调用和返回 265
10.4.3 子程序段间调用和返回 267
10.4.4 主程序和子程序间的参数传送 272
10.4.5 寄存器内容的保护 277
10.4.6 子程序嵌套 278
10.4.7 关于递归子程序及可重入子程序的概念 279
10.5 具有模块结构的程序设计 281
10.5.1 模块化程序设计方法简述 281
10.5.2 模块的组合方式 282
思考与练习十 283
第十一章 8088应用程序的开发过程 285
11.1 8088汇编语言应用程序的开发过程 285
11.1.1 利用EDIT程序建立和修改源程序 285
11.1.2 调用宏汇编程序MASM对源程序进行汇编 286
11.1.3 显示.LST文件及.REF文件 287
11.1.6 在DOS下运行.EXE文件 289
11.1.4 利用LINK程序将.OBJ文件连接成可执行的文件.EXE 289
11.1.5 利用DEBUG 程序调试.EXE程序 289
11.2 汇编语言程序设计软件包使用方法 290
11.2.1 EDIT.COM程序 290
11.2.2 调试程序DEBUG的主要命令 292
11.3 汇编语言程序开发过程实例 298
思考与练习十一 301
第十二章 8086/8088应用程序设计举例 302
12.1 输入输出程序设计 302
12.1.1 键盘解释程序的基本知识 302
12.1.2 键盘的基本操作原理 303
12.2 8088/8086中断系统及中断程序设计 308
12.2.1 中断源 308
12.2.2 不断矢量表 309
12.2.3 中断处理程序结构 311
12.2.4 用户软中断的设置 312
12.2.5 中断程序设计举例 314
12.3 DOS系统功能调用 317
12.3.1 系统调用方法 318
12.3.2 DOS功能调用分组说明 318
12.3.3 系统调用程序实例 319
12.4 BIOS功能调用 325
12.4.1 常用BIOS调用 326
12.4.2 图形显示程序设计 329
12.5 C语言和汇编语言的相互调用 334
12.5.1 汇编语言子程序调用方法 335
12.5.2 C语言调用汇编语言子程序举例 339
12.5.3 汇编语言调用C语言子程序 340
12.5.4 在C语言程序行中间嵌入汇编指令 342
思考与练习十二 342
第十三章 80386/80486结构特点及指令系统 344
13.1 80386/80486硬件结构 344
13.1.1 80386/80486功能结构 344
13.1.2 80386/80486的寄存器结构 347
13.2 80386的工作方式 352
13.2.1 实地址方式 352
13.2.2 保护虚地址方式 353
13.3 80386指令系统 360
13.3.1 80286对8086指令的扩充 361
13.3.2 80386对80286指令的扩充 362
思考与练习十三 364
附录 366