第一章 入门 1
1.1 安装Turbo Assembler 1
1.2 编写第一个Turbo Assembler用户程序 2
1.3 修改第一个Turbo Assembler程序 4
1.4 编写第二个Turbo Assembler用户程序 7
第二章 使用伪指令和开关 9
2.1 在DOS中启动Turbo Assembler 9
2.2 命令行选择项 11
2.3 间接命令文件 21
2.4 配置文件 22
第三章 程序设计概念 23
3.1 Turbo Assembler Ideal方式 23
3.2 注释程序 28
3.3 扩充行 28
3.4 使用INCLUDE文件 29
3.5 预定义符号 29
3.6 符号赋值 30
3.7 通用模块结构 31
3.8 汇编期间的消息显示 32
3.9 显示警告信息 32
3.10 多个错误信息报告 33
第四章 建立面向对象程序 35
4.1 术语 35
4.2 在Turbo Assembler为何用对象 35
4.3 对象是什么 35
4.4 声明一个方法过程 38
4.5 虚方法表 39
4.6 调用对象方法 40
4.7 建立对象实例 43
4.8 编程格式 48
第五章 使用表达式和符号值 46
5.1 常数 46
5.2 符号 47
5.3 表达式 49
第六章 选择处理器伪指令和符号 60
6.1 iApx86处理器伪指令 60
6.2 预定义符 61
6.3 @CPU 61
6.4 @Wordsize 62
6.5 8087协处理器伪指令 62
6.6 协处理器仿真伪指令 63
第七章 使用程序模式和段 64
7.1 MODEL伪指令 64
7.2 定义类段和组 69
7.3 ASSUME伪指令 72
第八章 定义数据类型 75
8.1 定义枚举数据类型 75
8.2 定义位域记录 76
8.3 定义结构和联合 77
8.4 定义表 80
8.5 定义命名类型 82
8.6 定义对象 82
第九章 设置和使用位置计数器 84
9.1 $位置计数器符号 84
9.2 位置计数器伪指令 84
9.3 定义标号 87
第十章 声明过程 89
10.1 过程定义语法 89
10.2 定义参数和局部变量 93
10.3 嵌套过程和作用域规则 96
10.4 声明对象的方法过程 97
10.5 使用过程的过程类型 98
第十一章 控制符号作用域 100
11.1 可重定义符号 100
11.2 块的作用域 100
11.3 MASM风格的局部标号 102
第十二章 分配数据 103
12.1 简单数据伪指令 103
12.2 建立结构或联合的实例 106
12.3 建立记录的实例 108
12.4 建立枚举的实例 109
12.5 建立表的实例 110
12.6 建立和初始化命名表实例 111
12.7 建立对象的实例 111
12.8 建立对象虚方法表的实例 111
第十三章 高级编码指令 113
13.1 灵巧代码生成:SMART和NOSMART 113
13.2 扩充跳转 113
13.3 附加的80386 LOOP指令 114
13.4 附加的80386 ENTER和LEAVE指令 114
13.5 附加返回指令 114
13.6 附加的IRET指令 115
13.7 扩充的PUSH和POP指令 115
13.8 附加的PUSHA,POPA,PUSHF和POPF指令 116
13.9 扩充移位指令 116
13.10 强制段重载:SEGxx指令 117
13.11 附加的灵巧标志指令 117
13.12 附加的域值操作指令 118
13.13 附加的快速立即乘指令 119
13.14 80386处理器指令的扩充 119
13.15 利用栈的调用序列 120
13.16 附加的面向对象程序设计指令 122
第十四章 使用宏 123
14.1 正文宏 123
14.2 多行宏 125
14.3 保存当前操作系统 133
第十五章 使用条件伪指令 136
15.1 通用条件伪指令语法 136
15.2 特定伪指令说明 138
15.3 将条件包括在列表文件中 143
第十六章 与Linker的接口 144
16.1 定义外部符号 144
16.2 包含库 147
16.3 ALIAS指令 147
第十七章 产生列表 148
17.1 列表格式 148
17.2 通用列表伪指令 148
17.3 包含文件列表伪指令 149
17.4 条件列表伪指令 149
17.5 宏列表伪指令 150
17.6 交叉引用列表伪指令 150
17.7 改变列表格式参数 151
第十八章 Turbo Assembler与Borland C++的接口 154
18.1 在Borland C++中调用Turbo Assembler函数 154
18.2 在Turbo Assembler中调用Borland C++ 178
第十九章 再论与Borland C++接口 184
19.1 混合语言程序设计 184
19.2 建立从Borland C++对.ASM的调用 186
19.3 建立从.ASM中对Borland C++的调用 189
19.4 定义汇编语言过程 190
19.5 寄存器约定 194
19.6 从.ASM过程中调用C函数 194
19.7 伪变量、嵌入汇编和中断函数 196
19.8 使用直接插入(inline)汇编语言 205
19.9 与汇编语言例程的接口 209
19.10 使用中断功能 225
19.11 使用中断处理程序 229
第二十章 Turbo Assembler与Turbo Pascal的接口 235
20.1 与Turbo Pascal共享信息 235
20.2 Turbo Pascal参数传递约定 239
20.3 Turbo Pascal中的函数结果 243
20.4 为局部数据分配空间 244
20.5 由Turbo Pascal调用汇编语言子程序的例子 245
第二十一章 汇编语言Windows程序示例 256
21.1 Windows数据结构、消息和常量定义文件WINDOWS.INC 256
21.2 文件WAP.ASM 311
21.3 模块定义文件WAP.DEF 318
附录A 程序设计蓝图 320
A.1 简化段描述 320
A.2 DOS程序 321
A.3 Windows程序 323
附录B Turbo Assembler语法概要 326
B.1 词法 326
B.2 MASM方式下的表达式语法 327
B.3 Ideal方式下的表达式语法 329
B.4 关键字优先权 332
B.5 Ideal模式优先级 332
B.6 MASM方式下的优先级 332
B.7 关键字和预定义符号 332
附录C 兼容性问题 328
C.1 一遍与两遍汇编 328
C.2 环境变量 339
C.3 Microsoft二进制浮点格式 339
附录D 实用程序 340
D.1 MAKE实用程序 340
D.2 TLIB:库管理程序 360
D.3 链接程序TLINK 364
D.4 THELP帮助 374
D.5 GREP查找程序 378
D.6 其它实用程序 384
D.7 H2ASH转换程序 397
附录E 出错信息 399
E.1 信息性信息 399
E.2 警告和出错信息 399