第一篇 基本概念 1
第一章 数字系统 1
1.1 汇编语言与数字系统的关系 1
1.2 二进制、十进制和十六进制数字系统 2
1.3 二进制数、十进制数、十六进制数之间的转换关系 4
1.4 二进制数与十六进制数的四则运算 7
1.5 正负数的表示法 10
1.6 电脑数据的基本单位:位(Bit)、字节(Byte)、字(Word) 11
1.7 两种常见的符号系统:ASCII码和汉字编码 13
第二章 PC的基本构造 16
2.1 PC的结构简介 16
2.2 80x86 CPU及其寄存器组 16
2.3 存储器的结构 26
2.4 80x86的分段式存储器管理 29
2.5 80x86指令的寻址方式 35
第二篇 必备的工具 43
第三章 如何使用调试程序DEBUG 43
3.1 进入及退出DEBUG 43
3.2 计算十六进制数 44
3.3 查看存储器的内容 44
3.4 将数据输入存储器 45
3.5 中断原理的说明 47
3.6 用DEBUG编写汇编语言程序 48
3.7 程序的存盘与载入 54
3.8 执行程序 56
3.9 跟踪程序 57
第四章 汇编语言的开发流程和程序结构 60
4.1 汇编语言的程序开发流程 60
4.2 汇编语言的语法 61
4.3 常用的MASM伪指令 65
4.4 MASM的程序结构 69
4.5 简单的程序范例 70
4.6 使用ML.EXE、LINK.EXE来汇编和连接程序 70
4.7.COM文件和.EXE文件 72
第三篇 指令介绍与练习 77
第五章 数据传送指令集 77
5.1 数据传送指令 77
5.2 堆栈存取指令 81
5.3 地址操作指令 83
5.4 表操作指令 86
5.5 程序举例 87
第六章 算术运算指令集 91
6.1 进位与溢出的原理 91
6.2 加法与减法指令 92
6.3 乘法指令 97
6.4 除法指令 99
6.5 有符号数扩充指令 100
6.6 BCD运算调整指令 102
6.7 程序举例 108
第七章 位运算指令集 111
7.1 逻辑运算指令 111
7.2 移位指令 114
7.3 循环移位指令 117
7.4 程序举例 119
第八章 程序流程控制指令集 123
8.1 标志设定指令 123
8.2 比较指令 125
8.3 跳转指令 127
8.4 循环指令 130
8.5 有关子程序的指令 132
8.6 中断指令 134
8.7 程序举例 136
第九章 程序流程控制伪指令 140
9.1 IF、ELSEIF、ELSE、ENDIF伪指令 140
9.2 WHILE、ENDW、REPEAT、UNTIL、BREAK、CONTINUE伪指令 144
9.3 程序举例 147
第十章 字符串操作指令 151
10.1 字符串操作指令总览 151
10.2 字符串传送指令 151
10.3 字符串比较指令 153
10.4 字符串搜索指令 155
10.5 字符串的载入与存储指令 157
10.6 重复前缀指令 159
10.7 程序举例 161
第四篇 高级应用 165
第十一章 子程序的使用 165
11.1 如何定义子程序 165
11.2 近程调用和远程调用 166
11.3 内部调用与外部调用 167
11.4 PUBLIC与EXTRN的使用 171
11.5 程序举例 173
11.6 子程序的再利用(Reuse) 175
11.7 程序库 176
11.8 LIB的使用技巧 178
第十二章 宏(MACRO)的使用 181
12.1 何谓宏 181
12.2 宏与子程序的比较 183
12.3 INCLUDE伪指令 185
12.4 宏的参数传递 186
12.5 宏内的标号与LOCAL定义 188
12.6 程序举例 189
附录A ML.EXE的命令参数 194
附录B MASM 6.11的系统需求与安装程序 196