第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二进制数的算术运算和逻辑运算 18
1.4.1算术运算 18
1.4.2逻辑运算 19
1.5习题 20
第2章 80x86计算机组织结构 22
2.180x86计算机的基本结构 22
2.1.1中央处理器 22
2.1.2总线结构 22
2.1.3存储器 23
2.1.4外围设备 24
2.2 80x86 CPU的寄存器 24
2.2.1通用寄存器 24
2.2.2控制寄存器 27
2.2.3段寄存器 30
2.3内存组织结构 30
2.3.1内存的地址与字节、字的存放 30
2.3.2堆栈 32
2.4 80x86 CPU的工作模式 33
2.4.1实模式 33
2.4.2保护模式 37
2.5存储器管理机制 38
2.5.1分段管理机制 39
2.5.2分页管理机制 39
2.6习题 40
第3章80x86指令系统和寻址方式 42
3.1指令格式 42
3.1.1指令的书写格式 42
3.1.2提供操作数的方式 43
3.2寻址方式 45
3.2.1与数据有关的寻址方式 45
3.2.2 32位CPU的寻址方式 54
3.2.3与转移地址有关的寻址方式 57
3.3指令系统 61
3.3.1数据传送指令 61
3.3.2算术运算指令 71
3.4习题 91
第4章 汇编语言程序结构 95
4.1汇编语言程序的基本结构 95
4.1.1汇编语言程序的基本框架 95
4.1.2汇编语言程序的指令格式 97
4.2汇编语言的数据 98
4.2.1常量 98
4.2.2变量 98
4.2.3标号 101
4.2.4变量定义时用到的操作符和表达式 102
4.3运算符与表达式 105
4.3.1算术运算符 105
4.3.2逻辑运算符 105
4.3.3关系运算符 106
4.3.4数值回送操作符 106
4.3.5属性操作符 109
4.3.6移位运算符 111
4.3.7运算符的优先级 112
4.4伪指令 112
4.4.1完整段定义伪指令 112
4.4.2处理器选择伪指令 117
4.4.3简化段定义伪指令 118
4.4.4定位伪指令 120
4.4.5赋值伪指令 120
4.4.6 LABEL伪指令 121
4.4.7对准伪指令 122
4.4.8标题伪指令 123
4.5习题 123
第5章 顺序、分支和循环程序设计 126
5.1顺序程序设计 126
5.2分支程序设计 131
5.2.1转移指令 131
5.2.2条件转移指令 132
5.2.3根据条件设置字节指令 138
5.2.4分支程序设计的应用举例 140
5.3循环程序设计 147
5.3.1循环程序结构 147
5.3.2循环控制指令 148
5.3.3单重循环的应用举例 166
5.3.4多重循环的应用举例 176
5.4习题 181
第6章 子程序设计 185
6.1子程序的结构 185
6.1.1子程序的定义 185
6.1.2子程序的调用与返回指令 186
6.1.3子程序的编程原则 192
6.1.4参数的传递 194
6.2子程序的嵌套与递归 206
6.2.1子程序的嵌套调用 206
6.2.2子程序的递归 210
6.3子程序应用举例 215
6.4习题 221
第7章 高级汇编技术 223
7.1宏汇编 223
7.1.1宏定义 223
7.1.2宏调用和宏展开 223
7.1.3宏定义和调用时的参数使用 225
7.1.4宏定义的伪指令 228
7.1.5宏库的建立和使用 229
7.2重复汇编 232
7.3条件汇编 234
7.3.1条件汇编伪指令 234
7.3.2使用条件汇编伪指令的程序结构 235
7.4习题 236
第8章 输入/输出与中断 240
8.1输入/输出设备的数据传送方式 240
8.1.1 I/O端口 240
8.1.2 I/O指令 241
8.1.3 I/O设备的数据传送方式 243
8.2 80x86的中断系统 246
8.2.1中断的基本概念 246
8.2.2中断指令 247
8.2.3中断分类 248
8.2.4中断优先级和中断嵌套 250
8.2.5中断向量表 250
8.2.6中断过程 252
8.2.7如何编写中断处理程序 253
8.3 BIOS与DOS中断系统 258
8.3.1 BIOS与DOS中断调用概述 258
8.3.2键盘I/O程序设计 260
8.3.3显示器I/O程序设计 267
8.3.4 BIOS及DOS的时间功能调用 278
8.3.5图形系统程序设计 282
8.3.6发声系统程序设计 292
8.4习题 296
第9章 磁盘文件存取方法 299
9.1以文件句柄方式存取文件 299
9.1.1 DOS文件功能调用 299
9.1.2路径和ASCIIZ串 300
9.1.3文件句柄、错误代码和文件属性 301
9.1.4文件的打开方式 302
9.1.5读写指针的移动 303
9.2文件操作举例 304
9.3习题 314
第10章C/C +与汇编语言的混合编程方法 317
10.1嵌入式汇编 317
10.1.1嵌入式汇编的格式 317
10.1.2几点说明 320
10.1.3编译链接的方法 321
10.2 C/C++程序调用汇编源程序 321
10.2.1一个简单的小例子 322
10.2.2编译链接的方法 322
10.2.3 C/C +++程序对汇编源程序的调用规则 324
10.2.4 MASM 6.11环境下参数传递的变化 332
10.3习题 335
第11章 汇编语言程序设计实验方法 336
11.1汇编语言上机步骤 336
11.2用MASM 5.0汇编、链接程序 337
11.2.1运行汇编程序必备的条件 337
11.2.2执行汇编程序 338
11.2.3执行链接程序 341
11.3 DEBUG调试器的使用 342
11.3.1 DEBUG的主要特点 342
11.3.2通过DEBUG编写、运行汇编程序 342
11.3.3 DEBUG的进入 344
11.3.4 DEBUG的主要命令 344
11.3.5举例 346
11.4 Microsoft MASM 6.11软件包的使用 348
11.4.1安装MASM 6.11 348
11.4.2安装后的任务 350
11.4.3 PWB系统的进入和退出 350
11.4.4 PWB主菜单 350
11.4.5设置PWB的开发环境 351
11.4.6 PWB应用实例 353
11.5 CodeView调试器的使用 355
11.5.1 CodeView调试器的进入和退出 355
11.5.2 CodeView调试器主窗口及功能键 356
11.5.3 CodeView功能键 357
11.5.4 CodeView环境设置 358
11.5.5用CodeView调试汇编程序 358
11.5.6在Command窗口调试程序 360
11.6 RadASM+MASM32集成开发环境 361
11.6.1 MASM32的安装 361
11.6.2链接器和调试器的安装 364
11.6.3 RadASM的安装 364
11.6.4配置RadASM编译环境 366
11.6.5 RadASM应用实例 368
11.6.6修改ini配置文件 373
附录 374
附录A 80x86指令系统一览表 374
附录B ASCII码表 384
附录C DOS系统功能调用(INT 21 H) 385
附录D BIOS功能调用 386