本书以Intel 8086/8088为基本机型,详细介绍了8086/8088微处理器的寻址方式和指令系统,结合程序设计的需要,介绍了常用伪指令;以顺序程序、分支程序、循环程序和子程序设计为引领,详细讲解了编制汇编语言程序的要领、方法和技巧。在本书的最后部分,介绍了80x86/Pentium部分新增指令和80x86的编程技术。为适应不同基础学生的需求,兼顾提高学习兴趣的考虑,增加了汇编语言程序设计的综合举例和练习,供学有余力的学生选学。
本书可作为高职高专、成人高校计算机类、电子类、电气类、自动化类等各专业的教材,也可作为专业技术人员、自学者的参考书。
本书首先介绍汇编语言概念及与汇编语言课程相关的基础知识。以计算机系统组成为线索,阐述了8086/8088 CPu的结构,进而介绍其内部寄存器名称和基本作用,并对存储器的组织以及分段情况作了分析讲解。接着,介绍Intel 8086/8088的寻址方式、指令系统和常用伪指令。以MASM为汇编器,讲解了汇编语言程序的上机过程。为了避免学生集中学习指令而感到知识容量大、密集度高、枯燥乏味的缺憾,本书将部分指令同顺序程序、分支程序、循环程序、子程序设计结合起来讲解。上机实验指导部分先从寄存器、存储器操作人手,到DEBUG环境下编程,再过渡到MASM汇编器编程。增加了基础操作的内容,丰富了实践教学。为适合不同层次人员的学习,本书将80x86/Pentium部分指令及编程技术、汇编语言程序综合举例列入选学内容。
本书可作为高职高专、成人高校计算机类、电子类、电气类、自动化类等各专业的教材,也可作为专业技术人员、自学者的参考书。
第1章 汇编语言及相关基础知识/1
1.1 汇编语言概述/1
1.1.1 汇编语言的概念/1
1.1.2 汇编语言的特点 /2
1.1.3 汇编语言的应用场合/3
1.2 常用数制及其转换/3
1.2.1 常用数制 /3
1.2.2 数制的转换/4
1.3 无符号数和有符号数/5
1.4 原码、反码和补码/6
1.5 BCD码和ASCII码/8
1.5.1 BCD码/8
1.5.2 字符编码(ASCII码)/9
1.6 基本逻辑运算/10
习题/11
第2章 微型计算机内部结构及编程模型/13
2.1 计算机系统组成/13
2.1.1 硬件系统/14
2.1.2 软件系统/15
2.2 8086/8088 CPU组成 /16
2.2.1 8086/8088 CPU的基本组成/16
2.2.2 8086/8088寄存器组/18
2.3 8086/8088的存储器组织/22
2.3.1 存储单元的地址和内容/22
2.3.2 存储器的分段/22
2.3.3 物理地址的形成/23
2.3.4 堆栈/23
2.4 DEBUG的使用 /24
2.4.1 DEBUG程序使用 /24
2.4.2 DEBUG的常用命令/24
习题/28
第3章 8086/8088的寻址方式和基本指令/30
3.1 概述/30
3.2 与数据有关的寻址方式/31
3.2.1 立即寻址方式/31
3.2.2 寄存器寻址方式/31
3.2.3 直接寻址方式/31
3.2.4 寄存器间接寻址方式/32
3.2.5 寄存器相对寻址方式/32
3.2.6 基址变址寻址方式/33
3.2.7 相对基址变址寻址方式/33
3.3 8086/8088基本指令/34
3.3.1 数据传送指令/34
3.3.2 堆栈操作指令/35
3.3.3 标志操作指令/36
3.3.4 算术运算指令/36
3.3.5 逻辑运算指令/41
3.3.6 移位指令/42
3.3.7 串操作指令/44
3.3.8 中断指令/45
3.3.9 输入/输出指令/46
3.3.10 处理器控制指令/47
习题/48
第4章 8086/8088伪指令及上机过程/50
4.1 汇编语言语句格式/50
4.1.1 名字项 /50
4.1.2 操作项/51
4.1.3 操作数项 /51
4.1.4 注释项/55
4.2 伪指令语句/55
4.2.1 段定义伪操作/56
4.2.2 程序的开始和结束伪指令/57
4.2.3 数据定义伪指令/58
4.2.4 过程定义伪指令/59
4.2.5 表达式赋值伪操作/59
4.3 宏指令/60
4.4 DOS功能调用/61
4.4.1 输入字符功能/62
4.4.2 输出字符功能/63
4.4.3 输出字符串功能/63
4.4.4 输入字符串功能/64
4.4.5 终止程序功能/65
4.5 汇编语言程序的上机过程/65
4.5.1 软件环境/66
4.5.2 汇编语言源程序上机操作说明/66
习题/70
第5章 顺序程序设计/72
5.1 汇编语言程序设计概述/72
5.1.1 汇编语言程序设计的基本步骤/73
5.1.2 汇编语言程序设计举例/73
5.2 流程图的画法规定/75
5.3 顺序程序设计/76
5.3.1 顺序程序的结构形式/76
5.3.2 顺序程序设计/77习 题/81
第6章 控制转移指令与分支程序设计/84
6.1 与转移有关的寻址方式/84
6.1.1 段内直接寻址方式/85
6.1.2 段内间接寻址方式/85
6.1.3 段间直接寻址方式/86
6.1.4 段间间接寻址方式 /87
6.2 控制转移指令/87
6.2.1 无条件转移指令/87
6.2.2 条件转移指令/89
6.3 分支程序设计/92
6.3.1 分支程序的结构/92
6.3.2 双分支程序设计/93
6.3.3 多分支程序设计/99
习题/107
第7章 循环指令与循环结构程序设计/110
7.1 循环指令/110
7.2 循环程序的结构/112
7.2.1 概述/112
7.2.2 循环程序的结构形式/117
7.3 单重循环程序设计/118
7.3.1 单重循环程序设计方法/118
7.3.2 单重循环程序设计举例/120
7.4 循环程序的控制方法/123
7.4.1 计数控制法/123
7.4.2 条件控制法/124
7.4.3 逻辑尺控制法/124
7.4.4 开关控制法/126
7.5 多重循环程序设计/128
习题/130
第8章 子程序相关指令与子程序设计/134
8.1 子程序调用与返回指令/134
8.1.1 子程序调用指令/134
8.1.2 子程序返回指令/136
8.2 子程序的基本构成/138
8.2.1 子程序及其调用与返回/138
8.2.2 子程序说明信息/138
8.2.3 寄存器的保护与恢复/139
8.3 子程序的参数传递方法/140
8.4 子程序设计/141
8.4.1 子程序定义及格式要求/141
8.4.2 子程序设计方法/142
8.5 子程序的嵌套与递归/148
8.5.1 子程序的嵌套/148
8.5.2 子程序递归/148
习题/152
第9章 80x86/Pentium部分新增指令/155
9.1 Intel系列CPU简介/155
9.2 80286 1曾扩指令/156
9.3 80386曾扩指令/157
9.4 80486增扩指令/159
9.5 Pentium增扩指令/159
9.6 80x86指令集选择伪指令/160
习题/160
第10章 程序设计综合示例/161
10.1 算术运算程序设计/161
10.2 非数值处理程序设计/164
10.3 发声程序设计/166
10.4 图形显示程序设计/171
10.5 动画程序设计/173
习题/179
实验一 显示和修改寄存器及显示存储区操作/180
实验二 显示和修改存储单元内容及编程操作/182
实验三 内存操作数、寻址方法和基本指令操作/184
实验四 数据的建立与传送操作 /187
实验五 算术、逻辑、移位及串指令的操作/189
实验六 数据串传送和查表程序 /191
实验七 汇编语言程序的上机过程操作/193
实验八 分支程序、顺序程序设计/198
实验九 循环程序设计/200
实验十 子程序设计/202
实验十一 统计学生成绩程序设计/205
实验十二 学生成绩名次表程序设计/207
附录1 80x86指令表/211
附录2 DOS系统功能调用(INT 21H)/229
参考文献 /236