《Windows汇编语言程序设计教程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:谭毓安,张雪兰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2005
  • ISBN:7121009862
  • 页数:414 页
图书介绍:本书以Windows操作系统和Intel 80x86/Pentium系列CPU为背景,全面系统地介绍了32位保护模式下的汇编语言程序设计。包括Windows系统环境、CPU的各种指令、MASM的伪指令与操作符等知识,以及分支、循环、子程序、C/C++混合编程、程序上机调试过程等程序设计方法。本书的核心是Windows下的32位保护模式编程,摈弃了过时的DOS 16位实模式编程环境,与当前的软件开发和微机应用环境结合紧密。本书不但能帮助读者顺利地掌握汇编语言程序设计方法,而且能够提高读者的C/C++编程水平。书中的程序具有很强的实用性,强调C/C++和汇编语言的联合编程能力,通过这些实例与其他课程相呼应,有利于各门课程之间的融会贯通。本书适合作为高等院校汇编语言程序设计相关课程的教材或教学辅导书,也可作为希望掌握Windows汇编程序设计的中高级程序开发人员的自学参考书。

第1章 基础知识 1

1.1 常用数制及其相互转换 1

1.2 存储器内的数字表示 3

1 2.1 存储器 3

1.2 2 存储顺序 6

1 3 数据表示 8

1.3 1 整数的表示 8

1 3 2 字符的表示 9

1 3 3 汉字的表示 9

1 3 4 Unicode标准 10

1 3 5 BCD码 11

习题1 11

2 1 3 16位CPU:8086、8088、80286 13

2 1 2 8位CPU:8008、8080 13

2.1.1 4位CPU:4004 13

2.1 Intel CPU的发展 13

第2章 Intel 80x86系列微处理器 13

2 1.4 32位CPU:80386、80486 14

2.1.5 准64位CPU:Pentium、PⅡ、PⅢ、P4 14

2 1 6 64位CPU:Itanium 16

2.2 PC机操作系统的发展 16

2 2 1 MS-DOS 16

2.2.2 桌面Windows系统 17

2 2 3 Windows NT系列 17

2.2 4 Linux 18

2.3 16位CPU及DOS基础 19

2.3.1 执行单元 19

2.3 2 总线接口单元 20

2.3 3 寄存器 20

2 3 4 存储器的分段 22

2 3 5 DOS的内存布局 23

2.3.6 I/O地址空间 25

2.4 32位CPU及Windows基础 25

2.4 1 三种工作模式 25

2 4 2 寄存器 27

2 4.3 Windows应用程序的内存布局 29

2.4 4 Windows的保护机制 32

习题2 34

第3章 Windows汇编程序基础 36

3.1 机器语言、汇编语言和高级语言 36

3 1.1 机器语言 36

3 1.2 汇编语言 37

3 1 3 高级语言 38

3 1 4 三种语言的比较 38

3.2 汇编语言程序的上机过程 39

3 2.1 汇编程序的开发过程 40

3 2 2 MASM汇编器 41

3 2.3 LINK链接器 42

3 2.4 汇编链接步骤 42

3.3 汇编源程序的格式 43

3 3 1 一个显示字符串的汇编程序 43

3.3.2 程序格式 44

3 3.3 一个Windows界面的汇编程序 51

3.4 操作数的寻址方式 52

3 4.1 立即寻址 53

3.4 2 寄存器寻址 53

3.4.3 直接寻址 54

3.4.4 寄存器间接寻址 54

3 4 5 寄存器相对寻址 55

3.4.6 基址变址寻址 56

3.4.7 基址变址相对寻址 57

3 4 8 基址变址比例相对寻址 57

3.4.9 寻址方式总结 58

3.4.10 段超越 59

3.5 数据定义 60

3 5.1 常数的表示 60

3.5.2 简单数据类型 61

3.5.3 DUP伪操作 62

3 5 4 数据定义的例子程序 62

3.6 操作符 66

3.6.1 常用伪操作 66

3.6.2 算术操作符 71

3.7.1 立即数 72

3.7 寻址方式的应用 72

3.6.4 关系操作符 72

3.6.3 逻辑操作符 72

3 7 2 数组元素的访问 73

3 7 3 指针 74

习题3 76

第4章 数据操作 78

4.1 传送指令 78

4 1 1 通用数据传送指令 78

4.1 2 数据交换指令 81

4.1 3 取地址指令 82

4.2 算术运算 83

4 2 1 加法指令 83

4 2 2 减法指令 86

4.2.3 符号位扩展指令 89

4.2.4 乘法指令 91

4.2.5 除法指令 93

4.3 BCD码算术运算 95

4.3.1 压缩BCD码调整指令 95

4 3 2 非压缩BCD码调整指令 96

4.4 位运算指令 98

4.4.1 逻辑运算指令 98

4.4.2 位操作指令 102

4.4 3 移位指令 104

习题4 109

第5章 分支与循环程序设计 111

5.1 转移 111

5 1.1 无条件转移指令 111

5.1.2 条件转移指令 112

5.2 分支结构程序设计 114

5 2.1 单分支结构和双分支结构 115

5.2.2 多分支结构 116

5.2.3 折半查找程序 119

5.2.4 有序表插入 121

5.3 循环程序设计 123

5.3.1 循环指令 124

5 3.2 不定次数的循环 128

5.3.3 循环体中操作的控制 128

5 3 4 多重循环 130

5.4 跳转表 132

5 4 1 switch语句 132

5 4 2 跳转表 133

习题5 135

第6章 子程序设计 137

6.1 堆栈 137

6 1 1 堆栈空间 137

6 1 2 进栈和出栈指令 138

6 1 3 堆栈的用途 141

6.2 子程序 143

6 2 1 子程序的定义和调用 144

6 2 2 调用和返回指令 144

6 2 3 C语言函数的参数传递方式 147

6 2 4 汇编语言子程序的参数传递方式 153

6 2 5 带参数子程序的调用 154

6 2 6 子程序中的局部变量 157

6 2 7 子程序的嵌套 163

6 2 8 子程序的递归 163

6.3 Windows API 166

习题6 168

第7章 常用数据结构 171

7.1 数组与内存块 171

7 1 1 块操作 172

7 1 2 块传送指令 173

7 1 3 块存储指令 178

7 1 4 块装入指令 178

7 1 5 块比较指令 179

7 1 6 块扫描指令 181

7.2 字符串处理 182

7 2 1 常用字符串处理函数 183

7 2 2 常用内存块处理函数 185

7.3 结构 188

7 3 1 表示时间的结构 188

7 3 2 结构的声明和定义 190

7.3.3 结构数组 193

7.4 链表 198

7 4.1 动态分配和释放内存 198

7 4 2 链表中元素的插入与删除 199

7 4 3 链表的排序 204

7 4.4 双向链表 207

7.5 函数指针 207

7 5 1 指向子程序(函数)的指针 208

7 5 2 结构中的函数指针 210

7.6 程序执行环境 212

7 6 1 输入/输出重定向 212

7.6 2 命令行参数及程序返回值 213

习题7 214

第8章 汇编语言高级编程技术 216

8.1 宏 216

8.1 1 宏指令的定义和使用 216

8 1 2 宏指令中参数的使用 220

8 1 3 特殊的宏操作符 222

8.1 4 宏与子程序的区别 226

8.1 5 重复汇编 227

8.1 6 条件汇编 230

8.2 汇编高级语法 236

8 2 1 条件测试表达式 237

8.2 2 分支伪操作 239

8.2 3 循环伪操作 241

8.3 模块化程序设计 244

8.3 1 模块化程序设计基本概念 244

8.3.2 模块间的通信 245

8.4 C和汇编的混合编程 247

8 4 1 直接嵌入 247

8 4 2 C程序调用汇编子程序 249

8 4 3 汇编调用C函数 259

8.4.4 C++与汇编 261

8.5 程序优化 268

8 5.1 运行时间的优化 269

8.5 2 占用空间的优化 276

习题8 280

第9章 I/O程序设计 283

9.1 I/O操作 283

9.1.1 I/O端口及其分配 283

9.1.2 I/O指令 286

9.1.3 保护模式下I/O指令的限制 288

9.2 直接传送方式 289

9.2.1 CMOS数据的读取 289

9 2.2 扬声器发声程序 292

9 2.3 串行I/O 294

9 2 4 并行I/O 296

9.3.1 基本原理 298

9.3 中断传送方式 298

9 3.2 中断服务程序 300

9.4 DMA传送方式 302

9 4.1 DMA传送的过程 303

9 4 2 软盘控制器与DMA 304

9.5 文件I/O 304

9 5 1 文件 305

9 5 2 文件操作的基本函数 307

9 5.3 文件处理实例 310

习题9 316

第10章 保护模式及其编程 318

10.1 保护模式基础 318

10 1 1 32位CPU内部结构 318

10.1.2 三种运行模式 320

10 1 3 寄存器 321

10 1 4 显示CPU寄存器的值 327

10.2 虚拟内存管理 331

10 2 1 段式内存管理功能 331

10 2 2 页式内存管理功能 336

10.3 特权级保护 347

10.3 1 对数据访问的保护 348

10 3 2 对程序转移的保护 350

10 3 3 门 351

10.4 任务 354

10 4.1 任务状态段 354

10.4.2 任务切换 358

10 4 3 输入/输出保护 362

10.4 4 编写驱动程序修改I/O位图 364

10.5 中断和异常 369

10.5.1 中断和异常的类型 369

10 5 2 中断门和陷阱门 376

10 5.3 中断和异常的处理过程 378

10.5.4 通过任务门的转移 381

10.5.5 结构化异常处理 384

10.6 虚拟8086模式 389

10 6 1 虚拟8086任务 389

10 6 2 虚拟8086模式的进入和退出 391

10.7 操作系统类指令 394

10 7.1 在实模式和任何特权级下可执行的指令 395

10.7.2 仅在实模式及特权级0下可执行的指令 396

10.7.3 仅在保护模式下可执行的指令 397

习题10 401

附录A 使用VC编译调试汇编程序 403

附录B ASCⅡ码表 410

附录C 汇编语言伪指令和操作符 412

参考文献 414