书名:
汇编语言程序设计
定价:
21.00元
出版社:
北京工业大学出版社
书号:
 
作者:
武马群(主编)
出版日期:
 
开本:
16开本
出版印次:
 
附带物:
    汇编语言是机器语言的符号化指令代码,是最接近计算机硬件系统、可直接操作和控制计算机系统硬件的实用程序设计语言。因此,汇编语言是一种功能强大的计算机语言。使用汇编语言编写程序,程序设计人员直接面对CPU内部组成和内存储器单元,可以实现对于计算机系统硬件的精确控制,在一些对于运行速度、存储空间要求较高的场合(如工业自动化控制、实时控制等),汇编语言是重要的程序设计工具。在一些系统级的程序(如操作系统、硬件接口系统等)设计中,也广泛使用汇编语言。对于使用高级程序设计语言的程序员而言,通过学习和了解汇编语言程序设计,能够深入理解CPU工作原理、内存储器分配和操作方式、系统输入/输出方式等内容,对于提高程序设计水平和程序调试能力也很有帮助。
    《汇编语言程序设计》是计算机科学、自动控制等专业的必修课程,是《计算机组成原理》、《操作系统》等课程的先修课程。本书以常用的IBM PC 8086/8088CPU为对象进行编写,是为高职、高专学校计算机类、自动控制类专业编写的教材。本书全面地讲述了8086宏汇编语言的基本知识和程序设计的基本方法。在编写上,考虑了高职、高专相应专业的教学要求,并对部分较为艰深的内容进行了适当的取舍,使其更加适合高职、高专的教学实际情况。
汇编语言是所有程序设计语言最为难懂的语言,程序调试、运行结果查看均比一般的级语言难度更大。本书作者结合多年的教学实践成果和应用开发经验,在全书编写中贯穿了“在了解CPU内部结构、存储器组织、寻址方式、指令系统的基础上,将汇编语言当作高级语言来学习”的思想。编写了通用的数据显示子程序(见本书附录),以帮助读者在编写汇编语言程序时,能够以较为简单的方式观察程序的运行结果,从而降低学习的难度。在示例的选取和程序设计上,按照“具有一定技巧和实用价值,程序代码量不大,与教材内容紧密结合”的原则,选取了一些程序简短、能直接说明问题的示例,并对程序中的数据段安排、寄存器使用分配、指令使用等进行了详细的说明。各章均精心选择了一定数量的习题,所有习题均附有参考答案。
    本书第1、2、3章由黄涛编写,第4、5、6章由钟俊英编写,第7、8、9、10章由何福良编写,全书由何福良统稿。
    本书可作为高职、高专院校计算机、自动控制及其他相关专业的教材及教学参考书。
    本书由西南财经大学匡松教授进行了认真的审读并提出了宝贵意见,本书作者深表谢意。由于编者水平所限,本书中难免存在错误或不妥之处,敬请读者指正。
第1章 汇编语言基础知识 1
1.1 汇编语言概述 1
1.1.1 机器语言 1
1.1.2 汇编语言 2
1.1.3 高级语言 2
1.1.4 学习汇编语言的必要性 2
1.2 进位计数制与数制转换 3
1.2.1 进位计数制 3
1.2.2 数制之间的转换 5
1.3 计算机中字符和数的表示 7
1.3.1 二进制编码形式的十进制数(BCD码) 7
1.3.2 字符表示法 7
1.3.3 带符号数的机器表示 8
1.4 二进制运算 9
1.4.1 补码加减法运算 10
1.4.2 逻辑运算 11
【本章小结】 11
【习题】 12
第2章 8086CPU及存储器组织 13
2.1 80x86微处理器 13
2.2 微型计算机系统构成 15
2.2.1 计算机硬件 15
2.2.2 计算机软件 16
2.3 中央处理器 17
2.3.1 8086/8088微处理器的结构 17
2.3.2 8086寄存器和标志 18
2.4 存储器 21
2.4.1 存储器的分段结构 21
2.4.2 实际地址的产生 22
【本章小结】 23
【习题】 23
第3章 寻址方式与指令系统 25
3.1 8086的寻址方式 25
3.1.1 立即数寻址 25
3.1.2 寄存器寻址方式 26
3.1.3 存储器直接寻址方式 26
3.1.4 寄存器间接寻址方式 27
3.1.5 寄存器相对寻址方式 27
3.1.6 基址/变址寻址方式 27
3.1.7 相对基址加变址寻址方式 28
3.2 8086的指令系统 28
3.2.1 数据传送指令 28
3.2.2 算术运算指令 33
3.2.3 逻辑运算指令 35
3.2.4 处理机控制及相关操作指令 36
3.2.5 移位指令 37
【本章小结】 39
【习题】 39
第4章 汇编语言源程序 42
4.1 汇编语言源程序格式 42
4.1.1 汇编语言源程序示例 42
4.1.2 汇编语言源程序的语句格式 44
4.1.3 汇编语言源程序的表达式和运算符 46
4.2 伪指令 48
4.2.1 符号定义伪指令语句 48
4.2.2 数据定义伪指令语句 49
4.2.3 段定义伪指令语句 51
4.2.4 过程定义的伪指令语句 53
4.2.5 汇编结束伪指令语句 54
4.3 汇编语言源程序上机调试运行过程 55
4.3.1 汇编语言的工作环境及上机步骤 55
4.3.2 编辑源程序 56
4.3.3 调用宏汇编对源程序进行汇编 57
4.3.4 对目标程序进行连接 57
4.3.5 运行可执行程序并进行调试 58
【本章小结】 62
【习题】 62
第5章 分支结构程序设计 65
5.1 无条件转移指令 66

5.2 条件转移指令 68
5.3 分支程序设计例 71
5.3.1 分支程序的结构 71
5.3.2 分支程序设计示例 72
【本章小结】 80
【习题】 81
第6章 循环结构程序设计 84
6.1 循环控制指令 85
6.1.1 常用的循环控制指令 86
6.1.2 常用的循环控制方式 88
6.2 循环程序设计举例 90
6.2.1 单循环程序设计 90
6.2.2 多重循环程序设计 92
【本章小结】 95
【习题】 95
第7章 子程序设计 98
7.1 问题的引出 98
7.2 子程序与主程序的关系 99
7.2.1 什么是子程序 99
7.2.2 使用子程序的意义 100
7.3 子程序定义伪指令 100
7.4 子程序调用与返回指令 101
7.4.1 子程序调用指令 101
7.4.2 子程序返回指令 103
7.4.3 简单子程序示例 103
7.5 子程序现场保护与恢复 104
7.5.1 现场保护与恢复的概念 104
7.5.2 使用堆栈进行现场保护与恢复 105
7.5.3 使用存储器单元进行现场保护与恢复 105
7.6 子程序与主程序之间的参数传递 106
7.6.1 使用寄存器传递数据 106
7.6.2 使用存储器单元传递数据 109

7.6.3 使用堆栈传递数据 111

7.6.4 使用参数存储区域的地址传递数据 115
7.7 子程序嵌套 116
7.7.1 子程序嵌套的概念 116
7.7.2 子程序嵌套程序设计示例 117
7.8 子程序递归 121
7.8.1 子程序递归的概念 121
7.8.2 使用子程序递归调用计算N! 122
【本章小结】 124
【习题】 124
第8章 数值运算与代码转换 126
8.1 二进制加法和减法运算 126
8.1.1 二进制加法运算 126
8.1.2 二进制减法运算 128
8.2 十进制加法和减法运算 128
8.2.1 BCD码 128
8.2.2 非组合型BCD码加法调整指令AAA 129
8.2.3 组合型BCD码加法调整指令DAA 132
8.2.4 非组合型BCD码减法调整指令AAS 136
8.2.5 组合型BCD码减法调整指令DAS 136

8.3 二进制乘法和除法运算 136
8.3.1 二进制乘法运算 136
8.3.2 二进制除法运算 138
8.4 十进制乘法和除法运算 141
8.4.1 非组合型BCD码乘法调整指令AAM 141
8.4.2 非组合型BCD码除法调整指令AAD 142
8.5 代码转换 144
8.5.1 将一个字节的二进制数据以二进制数输出 144
8.5.2 将一个字节的二进制数据以两位十六进制数输出 145
8.5.3 将一个字的二进制数据以五位十进制数输出 146
8.5.4 将一个数字ASCII字符串转换为对应的二进制数 147
8.6 串操作 148
8.6.1 串操作指令的寄存器约定 148
8.6.2 串操作指令 149
【本章小结】 158
【习题】 158
第9章 宏汇编 160
9.1 宏指令 160

9.1.1 宏定义 160
9.1.2 宏调用 162
9.1.3 宏展开 163
9.1.4 局部符号伪指令 165
9.1.5 宏操作符 168
9.2 重复汇编 169

9.2.1 定重复汇编伪指令REPT/ENDM 169
9.2.2 不定重复汇编伪指令IRP/ENDM 170
9.2.3 不定重复字符汇编伪指令IRPC/ENDM 172
9.3 条件汇编 173
9.4 结构 175
9.4.1 结构的定义 175
9.4.2 结构变量的声明 176
9.4.3 结构变量的引用 176
9.5 记录 179
9.5.1 记录的定义 179
9.5.2 记录变量的声明 179
9.5.3 记录运算符 179
9.5.4 记录及其字段的使用 180
【本章小结】 180
【习题】 181
第10章 输入/输出程序设计 182
10.1 输入/输出指令 182
10.1.1 输入/输出端口编码方式 182
10.1.2 输入/输出指令 183
10.2 中断 183
10.2.1 内中断与外中断 184
10.2.2 中断号与中断向量表 184
10.2.3 中断响应过程 185

10.3 DOS中断 186
10.3.1 DOS中断 186
10.3.2 中断指令 186
10.4 DOS系统功能调用(INT 21H) 187
10.4.1 DOS系统功能调用方法 187
10.4.2 键盘输入功能调用 187
10.4.3 输出/显示功能调用 190
10.4.4 系统日期和时间功能调用 191
10.4.5 目录管理调用 193
10.4.6 文件操作功能调用(1)—FCB文件操作 194
10.4.7 文件操作功能调用(2)—句柄文件操作 199
10.5 BIOS中断功能调用 208
10.5.1 BIOS显示中断(10H) 208
10.5.2 BIOS键盘中断(16H) 212
10.5.3 BIOS磁盘中断(13H) 216
【本章小结】 217
【习题】 217
附录 218