上篇CodeView使用指导 1
第一章 简介 1
1.1 简介 1
1.2 关于本篇 1
第二章 启动 3
2.1 简介 3
2.2 限制 3
2.3 为CodeView调试程序准备程序 3
2.4 启动Code View调试程序 7
2.5 使用Code View选项 9
第三章 CodcView显示 13
3.1 简介 13
3.2 使用窗口方式 13
3.3 使用顺序方式 24
第四章 使用对话命令 26
4.1 简介 26
4.2 输入命令和参数 26
4.3 Code View命令和参数的格式 27
第五章 CodeView表达式 29
5.1 简介 29
5.2 C表达式 29
5.3 汇编表达式 32
5.4 行号 33
5.5 寄存器和地址 34
5.6 存储器操作符 36
第六章 代码执行 39
6.1 简介 39
6.2 Trace命令 39
6.3 Program Step命令 41
6.4 Go命令 42
6.5 Execute命令 44
6.6 Restart命令 45
第七章 检查数据和表达式 46
7.1 简介 46
7.2 Display Expression命令 46
7.3 Examine Symbols命令 50
7.4 Dump命令 53
7.5 Compare Memory命令 59
7.6 Search Memory命令 59
7.7 Register命令 60
7.8 8087命令 61
第八章 断点管理 64
8.1 简介 64
8.2 Breakpoint Set命令 64
8.3 Breakpoint Clear命令 66
8.4 Breakpoint Disable命令 66
8.5 Breakpoint Enable命令 67
8.6 Breakpoint List命令 68
第九章 监视语句的管理 70
9.1 简介 70
9.2 设置监视表达式和内存监视语句 71
9.3 设置监视点 73
9.4 设置跟踪点 74
9.5 删除观察语句 76
9.6 监视点和跟踪点列表 77
9.7 汇编举例 78
第十章 代码检查 79
10.1 简介 79
10.2 Set Mode命令 79
10.3 Unassemble命令 80
10.4 View命令 82
10.5 Current Location命令 83
10.6 Stack Trace命令 84
第十一章 修改代码或数据 86
11.1 简介 86
11.2 Assemble命令 86
11.3 Enter命令 88
11.4 Fill Memory命令 95
11.5 Move Memory命令 96
11.6 Register命令 97
第十二章 使用CodeView系统控制命令 99
12.1 简介 99
12.2 Help命令 99
12.3 退出命令(Quit) 100
12.4 Radix命令 100
12.5 Redraw命令 101
12.6 Screen Exchange命令 102
12.7 Search命令 102
12.8 Shell Escape命令 103
12.9 Tab Set命令 104
12.10 Option命令 105
12.11 Redirection命令 106
下篇 MASM编程技术 111
简介 111
第一部分 使用汇编程序 116
第一章 导论 116
1.1 引言 116
1.2 关于系统 116
1.3 程序开发周期 116
1.4 程序开发 118
第二章 MASM的使用 121
2.1 引言 121
2.2 运行汇编程序 121
2.3 masm选项的使用 121
2.4 读汇编清单 130
第二部分 使用伪指令 139
第三章 编写源代码 139
3.1 简介 139
3.2 编写汇编语言语句 139
3.3 为符号指定名字 141
3.4 常数 143
3.5 定义缺省汇编行为 146
3.6 源文件的结束 149
第四章 定义段结构 150
4.1 简介 150
4.2 简化的段定义 150
4.3 完全的段定义 159
4.4 定义段组 166
4.5 段和寄存器的联系 168
4.6 初始化段寄存器 169
4.7 段的嵌套 172
第五章 定义标号和变量 174
5.1 简介 174
5.2 类型描述符的使用 174
5.3 定义代码标号 175
5.4 数据的定义和初始化 177
5.5 设置单元计数器 187
5.6 数据对齐 187
第六章 结构和记录的使用 190
6.1 引言 190
6.2 结构 190
6.3 记录 193
第七章 编写多模块程序 200
7.1 简介 200
7.2 公共符号的说明 200
7.3 外部符号的说明 201
7.4 多模块的使用 203
7.5 公有符号的说明 205
第八章 使用操作数和表达式 209
8.1 简介 209
8.2 伪指令中操作数的使用 209
8.3 使用操作符 210
8.4 使用存储单元计数器 222
8.5 使用向前引用 222
8.6 存储器操作数的类型强制 225
第九章 条件汇编 227
9.1 简介 227
9.2 使用条件汇编伪指令 227
9.3 条件错误伪指令 230
第十章 使用等式、宏和重复块 235
10.1 引言 235
10.2 等式的使用 235
10.3 宏的使用 238
10.4 定义重复块 242
10.5 宏运算符的使用 244
10.6 递归、嵌套和重定义宏的使用 248
10.7 宏和等式的管理 251
第十一章 汇编输出的控制 253
11.1 简介 253
11.2 传输信息到标准输出设备 253
11.3 控制清单中的页格式 253
11.4 控制清单的内容 256
11.5 控制交叉引用输出 258
第三部分 指令的使用 261
第十二章 了解8086系列处理器 261
12.1 引言 261
12.2 8086系列处理器的使用 261
12.3 地址的分段 263
12.4 使用8086系列寄存器 264
12.5 使用80386处理器 269
第十三章 寻址方式的使用 271
13.1 引言 271
13.2 使用立即操作数 271
13.3 使用寄存器操作数 272
13.4 使用存储器操作数 272
第十四章 装载、存储和传送数据 281
14.1 简介 281
14.2 传送数据 281
14.3 不同大小数据之间的转换 283
14.4 装载指针 285
14.5 堆栈的数据传送 287
14.6 对端口的数据传输 291
第十五章 算术运算与位处理 293
15.1 简介 293
15.2 加法 293
15.3 减法 295
15.4 乘法 296
15.5 除法 298
15.6 BCD码数值计算 300
15.7 逻辑位操作 302
15.8 扫描设置位 306
15.9 位的移动与循环 306
第十六章 控制程序流程 311
16.1 简介 311
16.2 转移 311
16.3 循环 319
16.4 根据条件设置字节 321
16.5 使用过程 321
16.6 中断 328
16.7 检查存储范围 329
第十七章 串的处理 331
17.1 简介 331
17.2 建立串的操作 331
17.3 串移动 333
17.4 搜索串 335
17.5 比较串 336
17.6 填充串 337
17.7 从串中装载数值 338
17.8 对端口的串传输 338
第十八章 用数学协处理器进行计算 340
18.1 引言 340
18.2 协处理器结构 340
18.3 仿真 342
18.4 使用协处理器指令 342
18.5 内存访问的同步 346
18.6 数据传送 347
18.7 算术运算 351
18.8 控制程序流程 355
18.9 使用超越指令 359
18.10 控制协处理器 360
第十九章 控制处理器 362
19.1 引言 362
19.2 时序和对齐控制 362
19.3 处理器控制 362
19.4 保护模式进程的控制 363
19.5 80386的控制 364
附录A 新的内容 365
A.1 简介 365
A.2 对MASM的增强 365
A.3 与汇编程序和译程序的兼容 367
附录B 指令汇总 369
B.1 引言 369
B.2 8086指令助记符 369
B.3 8087指令助记符 375
B.4 80186指令助记符 378
B.5 80286非保护指令助记符 378
B.6 80286保护指令助记符 379
B.7 80287指令助记符 380
B.8 80386非保护指令助记符 380
B.9 80386保护指令助记符 383
B.10 80387指令助记符 383
附录C 伪指令汇总 385
C.1 引言 385
附录D 高级语言使用的段名字 389
D.1 引言 389
D.2 正文段 390
D.3 近程数据段 390
D.4 远程数据段 391
D.5 BSS段 392
D.6 常量段 393
附录E 错误信息和返回码 394
E.1 简介 394
E.2 来自MASM的信息和返回码 394