《汇编语言程序设计 第2版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:刘慧婷,王庆生主编;陈洁,纪霞,钱付兰,徐怡副主编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115442970
  • 页数:268 页
图书介绍:本书主要介绍基于80x86的汇编语言程序设计方法和技术,第1章~第10章为主体部分,包括计算机基本组成结构和指令系统,循环、分支、子程序和宏汇编技术的程序设计;第11章为输入输出的一些典型应用,其中基本每章配有一组实验,共有10组实验题供选用和参考。

第1章 汇编语言基础知识 1

1.1 汇编语言简介 1

1.1.1 机器语言与汇编语言 1

1.1.2 汇编语言的组成 2

1.1.3 为什么要学习汇编语言 2

1.2 计算机中数据的表示 2

1.2.1 不同进位计数制及其相互转换 2

1.2.2 二进制数和十六进制数的运算 4

1.2.3 带符号数的补码表示 5

1.2.4 补码的加法和减法 6

1.2.5 无符号数的表示 7

1.2.6 字符的表示 7

1.2.7 基本逻辑运算 8

本章小结 9

习题1 9

第2章 计算机基本原理 10

2.1 计算机系统组成 10

2.2 存储器 11

2.2.1 16位结构的CPU 11

2.2.2 存储器 11

2.2.3 存储器分段 13

2.2.4 逻辑地址 14

2.2.5 CPU对内存的读写操作 15

2.3 中央处理器(CPU)中的寄存器 17

2.3.1 寄存器介绍 17

2.3.2 CS和IP 20

2.3.3 堆栈 20

2.4 外部设备和接口 21

2.5 32位80x86CPU的工作模式 21

习题2 22

实验1 用Debug命令查看寄存器和内存中的内容 22

第3章 汇编语言程序实例及上机操作 28

3.1 汇编语言的工作环境 28

3.1.1 汇编语言的系统工作文件 28

3.1.2 进入DOS命令行的方式 29

3.1.3 常用的DOS命令 29

3.2 汇编语言程序实例 31

3.2.1 单个字符的键盘输入与显示输出 31

3.2.2 显示字符串 32

3.3 程序实例的上机步骤 33

3.3.1 编辑——建立ASM源程序文件 33

3.3.2 汇编——产生OBJ二进制目标文件 34

3.3.3 连接——产生EXE可执行文件 34

3.3.4 LST列表文件 34

3.3.5 程序的运行 36

3.3.6 程序的跟踪和调试 36

3.4 在WIN7系统中执行汇编 39

3.5 几个常用的DOS系统功能调用(INT 21H) 42

本章小结 44

习题3 44

实验2 上机过程及程序调试 45

第4章 操作数的寻址方式 47

4.1 立即寻址方式 47

4.2 寄存器寻址方式 48

4.3 直接寻址方式 49

4.4 寄存器间接寻址方式 51

4.5 寄存器相对寻址方式 52

4.6 基址变址寻址方式 53

4.7 相对基址变址寻址方式 54

本章小结 55

习题4 56

实验3 不同寻址方式的灵活运用 56

第5章 常用指令系统 61

5.1 数据传送指令 62

5.1.1 通用数据传送指令 62

5.1.2 累加器专用传送指令 65

5.1.3 地址传送指令 67

5.1.4 标志寄存器传送指令 68

5.2 算术运算指令 69

5.2.1 类型扩展指令 69

5.2.2 加法指令 70

5.2.3 减法指令 73

5.2.4 乘法指令 76

5.2.5 除法指令 77

5.2.6 BCD码的十进制调整指令 79

5.3 逻辑与移位指令 81

5.3.1 逻辑指令 81

5.3.2 移位指令 82

5.4 串操作指令 84

5.4.1 MOVS串传送指令 84

5.4.2 CMPS串比较指令 86

5.4.3 SCAS串扫描指令 88

5.4.4 STOS串存入指令 89

5.4.5 LODS从串中取数指令 90

5.5 程序转移指令 91

5.5.1 无条件转移指令与程序的可重新定位 91

5.5.2 条件转移指令 93

5.5.3 循环指令 96

本章小结 97

习题5 97

实验4 算术及位串处理程序 100

第6章 伪指令与源程序格式 101

6.1 伪指令 101

6.1.1 处理机选择伪指令 101

6.1.2 段定义伪指令 101

6.1.3 程序开始和结束伪指令 103

6.1.4 数据定义与存储器单元分配伪指令 103

6.1.5 类型属性操作符 105

6.1.6 THIS操作符和LABEL伪操作 105

6.1.7 表达式赋值伪指令“EQU”和“=” 106

6.1.8 汇编地址计数器$与定位伪指令 106

6.1.9 基数控制伪指令 108

6.1.10 过程定义伪指令 108

6.2 语句格式 109

6.2.1 名字项和操作项 109

6.2.2 表达式和操作符 109

6.3 EXE文件与COM文件 112

6.3.1 程序段前缀PSP 112

6.3.2 COM文件 114

本章小结 115

习题6 115

实验5 伪指令 117

第7章 分支与循环程序设计 119

7.1 分支程序设计 119

7.1.1 分支程序结构 119

7.1.2 单分支程序 120

7.1.3 复合分支程序 121

7.1.4 多分支程序 123

7.2 循环程序设计 125

7.2.1 循环程序结构 125

7.2.2 计数循环程序 126

7.2.3 条件循环程序 127

7.2.4 条件计数循环程序 129

7.2.5 多重循环程序 131

本章小结 132

习题7 132

实验6 分支程序设计 134

实验7 循环程序设计 134

第8章 子程序设计 135

8.1 子程序结构 135

8.1.1 子程序调用指令 135

8.1.2 过程定义与过程结构 136

8.1.3 保存和恢复现场寄存器 138

8.2 子程序的参数传递 138

8.2.1 用寄存器传递参数 139

8.2.2 用变量传递参数 142

8.2.3 用地址表传递参数的通用子程序 144

8.2.4 用堆栈传递参数的通用子程序 147

8.2.5 用结构变量传递参数的通用子程序 151

8.3 多模块程序设计 154

8.3.1 多模块之间的参数传递 154

8.3.2 显示十进制数的通用模块 156

8.3.3 C语言程序调用汇编语言子程序 159

本章小结 160

习题8 160

实验8 子程序设计和多模块程序设计 161

第9章 宏汇编及其他高级伪操作 163

9.1 宏汇编 163

9.1.1 宏定义、宏调用和宏展开 163

9.1.2 宏定义的嵌套 166

9.1.3 宏定义中使用宏调用 167

9.1.4 带间隔符的实参 167

9.1.5 连接操作符& 168

9.1.6 宏替换操作符% 168

9.1.7 LOCAL伪操作 169

9.1.8 使用宏库文件 170

9.2 其他高级伪操作 173

9.2.1 PURGE伪操作 173

9.2.2 列表伪操作 173

9.2.3 重复汇编 173

9.2.4 条件汇编 176

习题9 178

实验9 宏汇编程序设计 179

第10章 输入/输出和中断 180

10.1 外部设备与输入/输出 180

10.1.1 I/O端口 180

10.1.2 I/O的数据传送控制方式 182

10.2 中断 184

10.2.1 中断的概念 184

10.2.2 中断向量表 187

10.2.3 中断过程 189

10.2.4 中断调用指令 189

10.3 中断处理程序设计 190

10.3.1 中断处理程序的基本功能 190

10.3.2 中断处理程序设计举例 191

本章小结 193

习题10 193

实验10 中断程序设计 194

第11章 输入/输出应用 195

11.1 可编程定时器 195

11.1.1 可编程定时器工作原理 195

11.1.2 定时器驱动扬声器发声 197

11.1.3 通用发声程序 198

11.1.4 乐曲程序 201

11.2 键盘调用 202

11.2.1 字符码与扫描码 202

11.2.2 键盘中断调用 203

11.2.3 键盘缓冲区 205

11.3 显示器的文本方式显示 206

11.3.1 显示方式 206

11.3.2 显示存储器与直接写屏 208

11.3.3 BIOS调用 209

11.4 显示器的图形方式显示 214

11.4.1 图形存储器 214

11.4.2 直接视频显示 215

11.4.3 BIOS功能视频显示 216

11.5 磁盘文件存取 218

习题11 223

实验11 输入/输出程序设计 223

附录1 80x86指令系统一览 224

附录2 伪操作与操作符 238

附录3 中断向量地址一览 251

附录4 DOS系统功能调用(INT 21H) 253

附录5 BIOS功能调用 261

附录6 Windows 104键键盘扫描码 266

参考文献 268