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

  • 购买积分:13 如何计算积分?
  • 作  者:钱晓捷主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121315886
  • 页数:356 页
图书介绍:本书是普通高等教育”十一五”国家级规划教材,是教育部-微软精品课程教学成果。本书以Intel 80x86指令系统和MASM 6.x为主体,共10章,分为基础和提高两部分。前5章作为基础部分,以当前”汇编语言程序设计”课程的教学为目标,讲解16位基本整数指令及其汇编语言程序设计的知识,包括:汇编语言程序设计基础知识,8086指令详解,MASM伪指令和操作符,程序格式,程序结构及其设计方法。后5章为提高部分,介绍汇编语言程序设计的深入内容和实际应用知识,包括:32位80x86 CPU的整数指令系统及其编程,汇编语言与C/C++混合编程,80x87 FPU浮点指令系统及其编程,多媒体扩展指令系统及其编程,64位指令简介。 本书可作为高等院校”汇编语言程序设计”课程的教材或参考书。

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

1.1 计算机系统概述 1

1.1.1 计算机的硬件 1

1.1.2 计算机的软件 3

1.1.3 计算机的程序设计语言 3

1.2 数据表示 5

1.2.1 数制 5

1.2.2 数值的编码 8

1.2.3 字符的编码 10

1.3 Intel 80x86系列微处理器 13

1.3.1 16位80x86微处理器 13

1.3.2 IA-32微处理器 14

1.3.3 Intel 64处理器 15

1.4 微型计算机系统 16

1.5 8086微处理器 18

1.5.1 8086的功能结构 18

1.5.2 8086的寄存器 19

1.5.3 8086的存储器组织 22

1.6 8086的寻址方式 25

1.6.1 8086的机器代码格式 26

1.6.2 立即数寻址方式 27

1.6.3 寄存器寻址方式 28

1.6.4 存储器寻址方式 28

1.6.5 数据寻址的组合 30

习题1 31

第2章 8086的指令系统 33

2.1 数据传送类指令 33

2.1.1 通用数据传送指令 33

2.1.2 堆栈操作指令 36

2.1.3 标志传送指令 38

2.1.4 地址传送指令 39

2.2 算术运算类指令 39

2.2.1 状态标志 39

2.2.2 加法指令 41

2.2.3 减法指令 42

2.2.4 乘法指令 44

2.2.5 除法指令 44

2.2.6 符号扩展指令 45

2.2.7 十进制调整指令 46

2.3 位操作类指令 49

2.3.1 逻辑运算指令 49

2.3.2 移位指令 50

2.3.3 循环移位指令 51

2.4 控制转移类指令 52

2.4.1 无条件转移指令 53

2.4.2 条件转移指令 54

2.4.3 循环指令 57

2.4.4 子程序指令 58

2.4.5 中断指令 59

2.5 处理机控制类指令 61

习题2 63

第3章 汇编语言程序格式 68

3.1 汇编语言程序的开发 68

3.1.1 汇编语言程序的语句格式 68

3.1.2 汇编语言的源程序框架 70

3.1.3 汇编语言程序的开发过程 73

3.1.4 DOS系统功能调用 82

3.2 参数、变量和标号 84

3.2.1 数值型参数 84

3.2.2 变量定义伪指令 86

3.2.3 变量和标号的属性 90

3.3 程序段的定义和属性 92

3.3.1 DOS的程序结构 92

3.3.2 简化段定义的格式 93

3.3.3 完整段定义的格式 97

3.4 复杂数据结构 100

3.4.1 结构 100

3.4.2 记录 102

习题3 103

第4章 基本汇编语言程序设计 106

4.1 顺序程序设计 106

4.2 分支程序设计 107

4.2.1 单分支结构 107

4.2.2 双分支结构 108

4.2.3 多分支结构 109

4.3 循环程序设计 112

4.3.1 计数控制循环 113

4.3.2 条件控制循环 114

4.3.3 多重循环 115

4.3.4 串操作类指令 116

4.4 子程序设计 121

4.4.1 过程定义伪指令 122

4.4.2 子程序的参数传递 124

4.4.3 子程序的嵌套、递归和重入 127

4.4.4 子程序的应用 129

习题4 134

第5章 高级汇编语言程序设计 137

5.1 高级语言特性 137

5.1.1 条件控制伪指令 137

5.1.2 循环控制伪指令 139

5.1.3 过程声明和过程调用伪指令 141

5.2 宏结构程序设计 143

5.2.1 宏汇编 144

5.2.2 重复汇编 149

5.2.3 条件汇编 150

5.3 模块化程序设计 153

5.3.1 源程序文件的包含 153

5.3.2 目标代码文件的连接 158

5.3.3 子程序库的调入 160

5.4 输入/输出程序设计 162

5.4.1 输入/输出指令 163

5.4.2 程序直接控制输入/输出 164

5.4.3 程序查询输入/输出 165

5.4.4 中断服务程序 166

习题5 173

第6章 32位指令及其编程 176

6.1 32位CPU的指令运行环境 176

6.1.1 寄存器 177

6.1.2 寻址方式 179

6.1.3 机器代码格式 180

6.2 32位扩展指令 182

6.2.1 数据传送类指令 182

6.2.2 算术运算类指令 184

6.2.3 位操作类指令 185

6.2.4 串操作类指令 185

6.2.5 控制转移类指令 186

6.3 DOS下的32位程序设计 189

6.4 32位新增指令 193

6.4.1 80386新增指令 193

6.4.2 80486新增指令 196

6.4.3 Pentium新增指令 197

6.4.4 Pentium Pro新增指令 201

6.5 用汇编语言编写32位Windows应用程序 202

6.5.1 32位Windows应用程序的特点 203

6.5.2 32位Windows控制台程序 204

6.5.3 Windows应用程序的开发 208

6.5.4 创建消息窗口 209

6.5.5 创建窗口应用程序 210

习题6 217

第7章 汇编语言与C/C+的混合编程 221

7.1 Turbo C嵌入汇编方式 221

7.1.1 嵌入汇编语句的格式 222

7.1.2 汇编语句访问C语言的数据 223

7.1.3 嵌入汇编的编译过程 224

7.2 Turbo C模块连接方式 225

7.2.1 混合编程的约定规则 225

7.2.2 汇编模块的编译和连接 227

7.2.3 混合编程的参数传递 228

7.2.4 汇编语言程序对C语言程序的调用 235

7.3 汇编语言在Visual C++中的应用 238

7.3.1 嵌入汇编语言指令 238

7.3.2 调用汇编语言过程 241

7.3.3 使用汇编语言优化C++代码 245

7.3.4 使用Visual C++开发汇编语言程序 248

习题7 251

第8章 80x87浮点指令及其编程 254

8.1 浮点数据格式 254

8.1.1 实数和浮点格式 254

8.1.2 80x87的数据格式 257

8.2 浮点寄存器 259

8.3 浮点指令的程序设计 262

8.3.1 浮点传送类指令 263

8.3.2 算术运算类指令 265

8.3.3 超越函数类指令 268

8.3.4 浮点比较类指令 269

8.3.5 FPU控制类指令 273

习题8 277

第9章 多媒体指令及其编程 280

9.1 MMX指令系统 280

9.1.1 MMX的数据结构 280

9.1.2 MMX指令 282

9.1.3 MMX指令的程序设计 289

9.2 SSE指令系统 291

9.2.1 SIMD浮点指令 291

9.2.2 SIMD整数指令 299

9.2.3 高速缓存优化处理指令 301

9.2.4 SSE指令的程序设计 302

9.3 SSE2指令系统 306

9.3.1 SSE2的数据类型 306

9.3.2 SSE2浮点指令 307

9.3.3 SSE2扩展指令 312

9.3.4 SSE2指令的程序设计 314

9.4 SSE3指令系统 316

9.4.1 SSE3指令 316

9.4.2 SSE3指令的程序设计 318

习题9 319

第10章 64位指令简介 321

10.1 64位方式的运行环境 321

10.2 64位方式的指令 324

附录A 调试程序DEBUG 328

A.1 DEBUG程序的调用 328

A.2 DEBUG命令的格式 328

A.3 DEBUG的命令 329

A.4 程序片段的调试方法 333

A.5 可执行程序文件的调试方法 334

A.6 使用调试程序的注意事项 336

附录B 调试程序CodeView 338

B.1 CodeView的菜单命令 338

B.2 CodeView的窗口 340

B.3 CodeView的设置 342

B.4 使用CodeView的调试示例 343

附录C 汇编程序MASM的伪指令和操作符 346

附录D 80x86整数指令系统 347

附录E 常见汇编错误信息 352

附录F 输入/输出子程序库 354

参考文献 356