第1章基础知识 1
1.1什么是汇编语言 1
1.1.1机器语言与汇编语言 1
1.1.2高级语言 2
1.1.3汇编语言的特点 2
1.1.4汇编语言与高级语言的比较 3
1.2进位计数制及转换方法 3
1.2.1常用的进位计数制 3
1.2.2数制之间的转换 5
1.3计算机中的数据组织 10
1.3.1数据组织方式 10
1.3.2数的表示方法 11
1.3.3字符的表示方法 16
1.4二进制的算术运算和逻辑运算 17
1.4.1二进制算术运算 17
1.4.2逻辑操作 18
1.5习题 19
第2章80x86计算机组织结构 21
2.1 80x86计算机的基本结构 21
2.1.1中央处理器 21
2.1.2总线结构 21
2.1.3存储器 22
2.1.4外围设备 23
2.2 80x86 CPU的寄存器 23
2.2.1通用寄存器 23
2.2.2控制寄存器 25
2.2.3段寄存器 28
2.3内存组织结构 29
2.3.1内存的地址与字节、字的存放 29
2.3.2堆栈 30
2.4 80x86 CPU的工作模式 31
2.4.1实模式 31
2.4.2保护模式 36
2.5存储器管理机制 37
2.5.1分段管理机制 37
2.5.2分页管理机制 37
2.6习题 38
第3章80×86指令系统和寻址方式 40
3.1指令格式 40
3.1.1指令的书写格式 40
3.1.2提供操作数的方式 41
3.2寻址方式 42
3.2.1与数据有关的寻址方式 43
3.2.2 32位CPU的寻址方式 51
3.2.3与转移地址有关的寻址方式 55
3.3指令系统 58
3.3.1数据传送指令 58
3.3.2算术运算指令 68
3.4习题 88
第4章汇编语言程序结构 92
4.1汇编语言程序的基本结构 92
4.1.1汇编程序的基本框架 92
4.1.2汇编语言的指令格式 94
4.2汇编语言的数据 95
4.2.1常量 95
4.2.2变量 95
4.2.3标号 98
4.2.4变量定义时用到的操作符和表达式 99
4.3运算符与表达式 102
4.3.1算术运算符 102
4.3.2逻辑运算符 102
4.3.3关系运算符 103
4.3.4数值回送操作符 103
4.3.5属性操作符(PTR、:、THIS、SHORT、HIGH、LOW) 105
4.3.6移位运算符 108
4.3.7运算符的优先级 108
4.4伪指令 109
4.4.1完整段定义伪指令(SEGMENT、ENDS、ASSUME) 109
4.4.2处理器选择伪指令 114
4.4.3简化段定义伪指令 114
4.4.4定位伪指令ORG 117
4.4.5赋值伪指令(EQU、=) 117
4.4.6 LABEL伪指令 118
4.4.7对准伪指令(EVEN) 119
4.4.8标题伪指令 120
4.5习题 120
第5章顺序、分支和循环程序设计 123
5.1顺序程序设计 123
5.2分支程序设计 128
5.2.1转移指令 128
5.2.2条件转移指令 129
5.2.3根据条件设置字节指令 135
5.2.4分支程序设计的应用举例 137
5.3循环程序设计 144
5.3.1循环程序结构 144
5.3.2循环控制指令 145
5.3.3单重循环的应用举例 163
5.3.4多重循环的应用举例 173
5.4习题 177
第6章子程序设计 181
6.1子程序的结构 181
6.1.1子程序的定义 181
6.1.2子程序的调用与返回指令 182
6.1.3子程序的编程原则 187
6.1.4参数的传递 190
6.2子程序的嵌套与递归 202
6.2.1子程序的嵌套调用 202
6.2.2子程序的递归 205
6.3子程序应用举例 211
6.4习题 216
第7章高级汇编技术 218
7.1宏汇编 218
7.1.1宏定义 218
7.1.2宏调用和宏展开 219
7.1.3宏定义和调用时的参数使用 220
7.1.4宏定义的伪指令 223
7.1.5宏库的建立和使用 224
7.2重复汇编 227
7.2.1重复伪指令 227
7.3条件汇编 229
7.3.1条件汇编伪指令 229
7.3.2使用条件汇编伪指令的程序结构 230
7.4习题 232
第8章输入/输出与中断 235
8.1输入/输出设备的数据传送方式 235
8.1.1 I/O端口 235
8.1.2 I/O指令 236
8.1.3 I/O设备的数据传送方式 238
8.2 80x86的中断系统 241
8.2.1中断的基本概念 241
8.2.2中断指令 242
8.2.3中断分类 243
8.2.4中断优先级和中断嵌套 245
8.2.5中断向量表 245
8.2.6中断过程 247
8.2.7如何编写中断处理程序 248
8.3 BIOS与DOS中断系统 253
8.3.1 BIOS与DOS中断调用概述 253
8.3.2键盘I/O程序设计 255
8.3.3显示器I/O程序设计 262
8.3.4 BIOS及DOS的时间功能调用 273
8.3.5图形系统程序设计 277
8.3.6发声系统程序设计 287
8.4习题 291
第9章磁盘文件存取方法 294
9.1以文件句柄方式存取文件 294
9.1.1 DOS文件功能调用 294
9.1.2路径和ASCIIZ串 295
9.1.3文件句柄、错误代码和文件属性 296
9.1.4文件的打开方式 298
9.1.5读写指针的移动 298
9.2文件操作举例 299
9.3习题 309
第10章C/C++与汇编语言的接口设计 312
10.1嵌入式汇编 312
10.1.1嵌入式汇编的格式 312
10.1.2几点说明 314
10.1.3编译链接的方法 316
10.2 C/C++程序调用汇编源程序 316
10.2.1一个简单的小例子 316
10.2.2编译链接的方法 317
10.2.3 C/C++程序对汇编源程序的调用规则 319
10.2.4 MASM6.11环境下参数传递的变化 326
10.3习题 328
第11章汇编语言程序设计实验方法 329
11.1汇编语言上机步骤 329
11.2用MASM 5.0汇编、链接程序 330
11.2.1运行汇编程序必备的条件 330
11.2.2执行汇编程序 330
11.2.3执行链接程序 334
11.3 DEBUG调试器的使用 335
11.3.1 DEBUG的主要特点 335
11.3.2通过DEBUG编写、运行汇编程序 335
11.3.3DEBUG的进入 337
11.3.4 DEBUG的主要命令 337
11.3.5举例 339
11.4 Microsoft MASM6.11软件包的使用 341
11.4.1安装MASM6.11 341
11.4.2安装后的任务 343
11.4.3 PWB系统的进入和退出 343
11.4.4 PWB主菜单 344
11.4.5设置PWB的开发环境 344
11.4.6 PWB应用实例 346
11.5 CodeView调试器的使用 348
11.5.1 CodeView调试器的进入和退出 348
11.5.2CodeView调试器主窗口及功能键 348
11.5.3 CodeView功能键 350
11.5.4 CodeView环境设置 350
11.5.5用CodeView调试汇编程序 351
11.5.6在Command窗口调试程序 352
附录 354
附录A 80x86指令系统一览表 354
附录BASII码表 365
附录C DOS系统功能调用(INT 21H) 366
附录D BIOS功能调用 367