目录 1
出版说明 1
前言 1
第1章基础知识 1
1.1数制及其转换 1
1.1.1数制 1
1.1.2数制之间的转换 1
1.1.3二进制与十六进制的运算规则 4
1.2.1机器语言 5
1.2程序设计语言 5
1.2.2汇编语言 6
1.2.3高级语言 7
1.2.4学习汇编语言的意义 7
1.3数据表示 8
1.3.1数据组织 8
1.3.2无符号数与带符号数 9
1.3.3字符的ASCII码表示 12
1.3.4 BCD码 12
1.3.5从不同角度看待一个二进制数 13
1.4基本逻辑操作 13
1.5习题 14
第2章8086计算机的基本结构与 15
寻址方式 15
2.1 8086计算机的基本结构 15
2.1.1 CPU 15
2.1.2内存 15
2.1.3 I/O子系统 16
2.1.4系统总线 16
2.2 8086的寄存器组与内存管理 17
2.2.1 8086 CPU的寄存器组 17
2.2.2 8086的物理内存组织 19
2.2.3内存的分段管理 20
2.3标志位 21
2.3.1状态标志 21
2.3.2控制标志 24
2.4 8086寻址方式 24
2.4.1立即寻址 25
2.4.2寄存器寻址 25
2.4.3内存寻址 25
2.4.4段超越 27
2.5习题 29
3.1.1数据传送指令 31
第3章8086指令系统 31
3.1指令系统 31
3.1.2算术指令 35
3.1.3位操作指令 43
3.1.4控制转移指令 47
3.1.5标志处理指令 53
3.1.6串操作指令 53
3.1.7处理器控制指令 58
3.2容易犯的错误 59
3.3实例 60
3.4习题 62
第4章汇编语言程序格式 65
4.1变量、标号与表达式 65
4.1.1数值表达式 65
4.1.2变量与标号 66
4.1.3地址表达式 67
4.1.4地址计数器 67
4.2基本伪指令 68
4.2.1段定义伪指令 68
4.2.2符号定义伪指令 68
4.2.3变量定义伪指令 69
4.2.4 L.ABEL 72
4.2.5 ASSUME 73
4.2.6源程序结束伪指令 74
4.2.7 ORG 74
4.2.8对齐伪指令 74
4.3语句格式 75
4.4操作符 76
4.5源程序的基本框架 80
4.6.1开发步骤 84
4.6汇编语言程序的开发 84
4.6.2汇编与连接 85
4.6.3调试器DEBUG 89
4.7结构 97
4.7.1结构类型的定义 97
4.7.2结构变量的定义 98
4.7.3结构变量及其字段的访问 98
4.8习题 100
第5章基本控制结构 103
5.1顺序结构 103
5.2字符与字符串的输入/输出 104
5.3.1对标号的进一步说明 108
5.3分支结构 108
5.3.2无符号数以及带符号数的比较 109
5.3.3实现无条件转移的多种方法 110
5.3.4双分支结构 110
5.3.5多分支结构 113
5.4循环结构 119
5.4.1循环结构的基本形式 119
5.4.2循环程序的控制方法 120
5.5数据串处理 133
5.5.1串操作指令的用途 133
5.5.2字符串处理 135
5.6习题 142
第6章过程 143
6.1过程的定义、调用与返回 143
6.1.1过程定义 143
6.1.2过程调用与返回 143
6.1.3实现过程调用的多种方法 147
6.2过程的参数传递 148
6.2.1用变量传递参数 149
6.2.2用寄存器传递参数 150
6.2.3用地址表传递参数 151
6.2.4用堆栈传递参数 153
6.3递归过程 168
6.4习题 172
第7章宏与多模块程序设计 176
7.1宏指令 176
7.1.1宏定义、宏调用与宏展开 176
7.1.2与宏有关的伪指令 177
7.1.3宏操作符 178
7.1.4宏指令与过程的区别 180
7.2.1 REPEAT 181
7.2.2 FOR 181
7.2重复块 181
7.2.3 FORC 182
7.3条件汇编 183
7.4多模块程序设计 185
7.4.1源文件的包含 185
7.4.2目标文件的连接 186
7.4.3模块间的组合 186
7.4.4模块间的通信 189
7.5习题 193
8.1.2输入/输出指令 197
8.1.1输入/输出原理 197
8.1输入/输出 197
第8章输入/输出与中断 197
8.2中断 200
8.2.1中断的基本概念 200
8.2.2中断指令 201
8.2.3中断分类 202
8.3 DOS与BIOS服务 204
8.3.1 DOS系统调用 205
8.3.2 BIOS服务 208
8.4.1程序段前缀PSP 209
8.4 DOS环境下的可执行程序 209
8.4.2.EXE文件与.COM文件 210
8.4.3程序退出的另一种方法 211
8.5中断服务程序设计 212
8.5.1中断服务程序设计的基本方法 212
8.5.2键盘程序设计 216
8.6习题 221
第9章32位x86指令及其程序设计 223
9.1 32位x86 CPU的寄存器组 223
9.2 32位x86 CPU的工作模式 224
9.3 32位扩展寻址方式 226
9.4 32位扩展指令 227
9.4.1数据传送指令 228
9.4.2算术指令 231
9.4.3位操作指令 233
9.4.4控制转移指令 237
9.4.5串操作指令 237
9.4.6 32位保护模式下指令的功能 240
9.5 32位指令的程序设计 242
9.5.1程序格式 242
9.5.2调试器CodeView 242
9.5.3程序实例 249
9.6汇编语言与C/C++语言的混合编程 252
9.6.1嵌入汇编语言 252
9.6.2 C/C++程序调用汇编语言过程 255
9.7习题 260
附录 262
附录A标准ASCII码字符集 262
附录B 8086指令系统 264
附录C 32位x86指令系统 269
附录D Windows 104键键盘扫描码 278
参考文献 280