第五章 宏汇编程序MACRO 1
5.1 源程序格式 2
5.1.1 语句格式 3
5.1.1.1 标号域 3
5.1.1.2 操作符域 4
5.1.1.3 操作数域 4
5.1.1.4 注释域 5
5.1.2 格式控制 5
5.2 符号和表达式 6
5.2.1 字符集 6
5.2.1.1 分隔字符和定界字符 8
5.2.1.2 非法字符 9
5.2.1.3 操作符字符 9
5.2.2 符号 11
5.2.2.1 不变符号 11
5.2.2.2 用户定义的符号和宏符号 11
5.2.3 直接赋值 13
5.2.4 寄存器符号 13
5.2.5 局部符号 15
5.2.6 汇编地址计数器 16
5.2.7 数 21
5.2.8 项 21
5.2.9 表达式 22
5.3 浮动和联接 24
5.4 寻址模式 26
5.4.1 寄存器模式 26
5.4.2 寄存器间接模式 26
5.4.3 自增模式 27
5.4.4 自增间接模式 28
5.4.5 自减模式 28
5.4.6 自减间接模式 28
5.4.7 变址模式 28
5.4.9 立即模式 29
5.4.8 变址间接模式 29
5.4.10 绝对模式 30
5.4.11 相对模式 30
5.4.12 相对间接模式 31
5.4.13 模式的形式和代码表 31
5.4.14 转移指令寻址 33
5.4.15 EMT和TRAP寻址 33
5.5 汇编命令 34
5.5.1 列表控制命令 34
5.5.1.1 .LIST和.NLIST 34
5.5.1.2 页标题 38
5.5.1.3 .TITLE 38
5.5.1.4 .SBTTL 47
5.5.1.5 .IDENT 48
5.5.1.6 页输出 49
5.5.2 功能.ENABL和.DSABL命令 49
5.5.3 数据存贮命令 51
5.3.3.1 .BYTE 51
5.3.3.2 .WORD 53
5.3.3.3 一个或两个字符的ASCII转换 54
5.3.3.4 .ASCII 56
5.5.3.5 .ASCIZ 57
5.5.3.6 .RAD5φ 58
5.5.4.1 .RADIX 60
5.5.4 基数控制 60
5.5.4.2 临时基数控制:↑D,↑O和↑B 61
5.5.5 地址计数器控制 61
5.5.5.1 .EVEN 62
5.5.5.2 .ODD 62
5.5.5.3 .BLKB和.BLKW 63
5.5.6 数字控制 64
5.5.6.1 .FLT2和.FLT4 65
5.5.6.2 临时数字控制:↑F和↑C 67
5.5.7 终止命令 68
5.5.7.1 .END 68
5.5.9 程序段命令 69
5.5.7.2 .ECT 69
5.5.8 程序定界命令.LIMIT 69
5.5.10 符号控制.GLOBL 73
5.5.11 条件汇编命令 75
5.5.11.1 子条件 77
5.5.11.2 立即条件 79
5.5.11.3 PAL-11R和PAL-11S条件汇编命令 79
5.6 宏命令 80
5.6.1 宏定义 80
5.6.1.1 .MACRO 80
5.6.1.2 .ENDM 81
5.6.1.4 宏定义格式 82
5.6.1.3 .MEXIT 82
5.6.2 宏调用 83
5.6.3 宏定义和调用的参数 83
5.6.3.1 宏嵌套 84
5.6.3.2 特殊字符 86
5.6.3.3 作为符号传送的数字参数 86
5.6.3.4 参数的个数 88
5.6.3.5 在用户定义的宏定义中自动地产生的符号 88
5.6.3.6 连接 90
5.6.4 .NARG,.NCRR和.NTYPE 91
5.6.5 .ERROR和.PRINT 94
5.6.6 不确定的重复块:.IRP和.IRPC 96
5.6.7 重复块REPT 99
5.6.8 宏库.MCALL 100
5.7 调用和使用MACRO 100
5.7.1 开关 102
5.7.1.1 列表控制开关 103
5.7.1.2 功能开关 104
5.7.1.3 相互引用表的产生(CREF) 106
5.8 MACRO 错误讯息 113
第六章 联接程序LINKER 117
6.1 绪言 117
6.2.1 命令串 118
6.2 调用和使用联接程序 118
6.2.2 开关 120
6.3 绝对和浮动程序段 121
6.4 全程符号 123
6.5 输入和输出 124
6.5.1 目的模块 124
6.5.2 装入模块 124
6.5.3 装入图 126
6.5.4 库文件 133
6.6 复盖的使用 133
6.7 库的使用 141
6.7.1 用户库的搜索 142
6.8 开关说明 147
6.8.1 按字母顺序的开关 147
6.8.2 底地址开关 147
6.8.3 继续开关(Continue Switch) 148
6.8.4 缺省的FORTRAN库开关 148
6.8.5 包含开关(Include Switch) 149
6.8.6 LDA格式开关 149
6.8.7 修改堆栈地址 150
6.8.8 复盖开关(Overlay Switch) 150
6.8.9 REL格式开关 153
6.8.10 符号表开关 153
6.8.11 转移地址开关 154
6.9 联接程序错误处理和讯息 155
第七章 库管理程序LIBRARIAN 160
7.1 调用和使用库管理程序 160
7.2 用户开关命令和功能 161
7.2.1 命令构造 161
7.2.2 库管理程序开关命令 162
7.2.2.1 命令继续开关 162
7.2.2.2 建立一个库文件 164
7.2.2.3 插入模块到库中 164
7.2.2.4 替换开关 166
7.2.2.5 删除开关 167
7.2.2.6 删除全程符开关 168
7.2.2.7 更新开关(Update Switch) 169
7.2.2.8 列表库文件的目录 171
7.2.2.9 合并库文件 172
7.3 组合的库开关功能 173
7.4 库文件的格式 174
7.4.1 库头部 174
7.4.2 入口点表(库目录) 175
7.4.3 目的模块 176
7.4.4 库结束尾部 176
7.5 库管理程序的错误讯息 177
10.2 限制 179
第十章 宏展开实用程序(EXPAND) 179
10.1 语言 179
10.3 调用和使用EXPAND 180
10.4 宏展开程序的错误讯息 182
第十一章 8K汇编程序(ASEMBL) 191
11.1 调用和使用ASEMBL 191
11.2 ASEMBL错误讯息 195
附录C 宏汇编程序,指令和字符代码摘要 204
C.1 ASCII字符集 204
C.2 基-50字符集 210
C.3 宏汇编的特殊字符 212
C.4 编址方式 213
C.5 指令 214
C.5.1 双操作数指令 216
C.5.2 单操作数指令 217
C.5.3 循环/移位 217
C.5.4 操作指令 220
C.5.5 自陷指令 222
C.5.6 转移指令 223
C.5.7 寄存器终点 224
C.5.8 寄存器-偏移 225
C.5.9 子程序返回 225
C.5.10 源-寄存器 225
C.5.11 浮点源双倍寄存器 226
C.5.12 源-双倍寄存器 228
C.5.13 双倍寄存器--终点 229
C.5.14 数 230
C.5.14 优先权 230
C.6 汇编程序命令 230
C.7 MACRO/CREF开关 236
C.7.1 列表控制开关 236
C.7.2 功能控制开关 237
C.7.3 CREF开关 237
C.8 八进制一十进制数转换 238
编后记 239