第一册 汇编程序参考手册 1
第一章 AS:一个汇编程序 1
1.1 引言 1
1.2 执行汇编程序 1
第二章 字符、数和名字 3
2.1 字符集 3
2.2 整形数 3
2.3 实型数 4
2.4 编码实数 4
2.5 压缩十进制数 4
2.6 字符和字符串常数 4
2.7 名字 5
2.8 保留字 5
第三章 语句和注解 7
3.1 语句 7
3.2 注解 7
第四章 源文件和段 8
4.1 源文件 8
4.2 段 9
4.3 正文段 9
4.4 小模式程序 10
4.5 中、大模式程序 10
4.6 数据段——Near(近) 10
4.7 数据段——Far(远) 11
4.8 BSS段 12
4.9 常数段 12
第五章 标号、变量和符号 14
5.1 标号 14
5.2 简单变量 14
5.3 多值变量 15
5.4 符号 15
5.5 绝对符号 16
第六章 作操数 17
6.1 立即操作数 17
6.2 寄存器操作数 17
6.3 直接存储操作数 18
6.4 基址操作数 18
6.5 变址操作数 19
6.6 基址变址操作数 19
第七章 表达式 21
7.1 算术操作符 21
7.2 SHR和SHL操作符 22
7.3 关系操作符 22
7.4 逻辑操作符 22
7.5 属性操作符 23
7.5.1 PTR 23
7.5.2 带段号的操作符 23
7.5.3 SHORT 24
7.5.4 THIS 24
7.5.5 HIGH,LOW 25
7.5.6 SEG 25
7.5.7 OFFSET 25
7.5.8 TYPE 25
7.5.9 .TYPE 25
7.5.10 LENGTH 26
7.5.11 SIZE 26
7.6 表达式计算 26
第八章 指令记忆符 28
8.1 8086指令记忆符 28
8.2 8037指令记忆符 31
8.3 186指令记忆符 33
8.4 286非特权指令记忆符 33
8.5 286特权指令记忆符 33
8.6 287指令记忆符 34
第九章 伪指令 35
9.1 ASSUME 35
9.2 COMMENT 35
9.3 DB 36
9.4 DD 35
9.5 DQ 37
9.6 DT 37
9.7 DW 38
9.8 END 33
9.9 EQU 39
9.10 = 39
9.11 EVEN 39
9.12 EXTRN 40
9.13 GROUP 40
9.14 INCLUDE 41
9.15 LABEL 42
6.16 NAME 42
9.17 ORG 42
9.18 PROC和ENDP 43
9.19 PUBLIC 43
9.20 .RADIX 44
9.21 SEGMENT和ENOS 44
程序装配任选项 45
6.22 IF 46
IF和IFE 47
IF1和IF2 47
IFDEF和IFNDEF 47
9.23 PAGE 48
9.24 TITLE 48
9.25 SUBTITLE 48
9.26 %OUT 49
9.27 .LIST和.XLIST 49
9.28 .SFCOND,.LFCOND和TFCOND 49
9.29 指令系统伪指令 50
第十章 程序清单格式 51
10.1 代码清单 51
10.2 符号表 51
10.3 段和组表 51
10.4 符号表 52
附录A 汇编程序信息 54
第二册 编译程序参考手册 60
第一章 C的元素 60
1.1 引言 60
1.2 表示法约定 60
1.3 字符集 61
1.3.1 字母和数字 61
1.3.2 空白格字符 61
1.3.3 标点和特殊符号 61
1.3.4 转义序列 62
1.3.5 运算符 63
1.4 常量 64
1.4.1 整型常量 64
1.4.2 浮点型常量 65
1.4.3 字符型常量 65
1.4.4 字符串常量 66
1.5 标识符 66
1.6 关键字 67
1.7 注释 67
1.8 单词 68
第二章 程序结构 69
2.1 引言 69
2.2 源程序 69
2.3 源文件 70
2.4 程序执行 71
2.5 伪指令 72
2.6 作用域和可见性 72
第三章 说明 74
3.1 引言 74
3.2 存贮类说明符 74
3.2.1 自动类 74
3.2.2 寄存器类 76
3.2.3 静态类 75
3.2.4 外部类 75
3.3 类型区分符 76
3.3.1 基本类型 76
3.3.2 枚举类型 77
3.3.3 结构类型 78
3.3.4 联合类型 78
3.4 说明符 79
3.4.1 指针修饰符 79
3.4.2 数组修饰符 80
3.4.3 函数修饰符 80
3.4.4 复合说明符 80
3.5 类型说明 81
3.5.1 枚举类型 82
3.5.2 结构类型 82
3.5.3 联合类型 83
3.6 变量说明 84
3.6.1 简单变量说明 84
3.6.2 数组说明 85
3.6.3 结构说明 86
3.6.4 联合说明 87
3.6.5 指针说明 88
3.7 函数说明 88
3.8 类型定义说明 89
3.9 初始化 90
3.9.1 基本类型 90
3.9.2 指针类型 90
3.9.3 聚集类型 90
3.9.4 字符串初始化 92
3.10 可见性与作用域 92
3.11 全局与外部变量 93
3.12 静态变量 93
3.13 全局与外部函数 94
3.14 静态函数 94
3.15 类型名 94
第四章 表达式和赋值 95
4.1 引言 95
4.2 操作数 95
4.3 常量 95
4.4 标识符 95
4.4.1 整型和浮点型标识符 95
4.4.2 枚举型标识符 96
4.4.3 结构和联合型标识符 96
4.4.4 指针标识符 96
4.4.5 数组标识符 96
4.4.6 函数标识符 96
4.5 字符串 96
4.6 函数调用 96
4.7 下标表达式 97
4.8 成员选择表达式 98
4.9 表达式 98
4.9.1 带运算符的表达式 99
4.9.2 类型强制表达式 99
4.9.3 括号中的表达式 99
4.9.4 常量表达式 99
4.10 类型转换 100
4.11 赋值转换 100
4.11.1 带符号整型转换 100
4.11.2 无符号整型转换 101
4.11.3 浮点型转换 102
4.11.4 枚举型转换 103
4.11.5 结构和联合类型转换 103
4.11.6 指针型转换 103
4.11.7 “空”型转换 103
4.12 类型强制转换 103
4.13 运算符转换 104
4.14 函数调用转换 104
4.15 运算符 104
4.16 求补运算符 105
4.16.1 算术负(-) 105
4.16.2 按位变补(~) 105
4.16.3 逻辑非(!) 105
4.17 间接与取地址的运算符 105
4.17.1 间接(*) 105
4.17.2 取地址(&) 105
4.18 sizeof运算符 105
4.19 乘法运算符 105
4.19.1 乘法(*) 106
4.19.2 除法(/) 106
4.19.3 取余数(%) 106
4.20 加法运算符 107
4.20.1 加(+) 107
4.20.2 减(-) 107
4.20.3 指针和整数组合 107
4.20.4 溢出 108
4.21 移位运算符 108
4.22 关系运算符 108
4.23 按位运算符 109
4.23.1 按位加(&) 109
4.23.2 按位或(|) 109
4.23.3 按位异或(^) 109
4.24 逻辑运算 110
4.24.1 逻辑与(&&) 110
4.24.2 逻辑或(||) 110
4.25 顺序求值运算符(,) 110
4.26 条件运算符(?:) 111
4.27 赋值运算符 111
4.28 单目减量和增量 112
4.29 简单赋值 112
4.30 复合赋值 113
4.31 优先权 113
4.32 副作用 115
第五章 语句 116
5.1 引言 116
5.2 break语句 116
5.2.1 语法 116
5.2.2 执行 117
5.2.3 例子 117
5.2.4 退出嵌套语句 117
5.3 复合语句 117
5.3.1 语法 117
5.3.2 执行 117
5.3.3 例子 118
5.3.4 标号语句 118
5.4 continue语句 118
5.4.1 语法 118
5.4.2 执行 118
5.4.3 例子 118
5.5 do语句 119
5.5.1 语法 119
5.5.2 执行 119
5.5.3 例子 119
5.6 表达式语句 119
5.6.1 语法 119
5.6.2 执行 119
5.6.3 例子 119
5.6.4 赋值和函数调用 119
5.7 lor语句 120
5.7.1 语法 120
5.7.2 执行 120
5.7.3 例子 120
5.8 goto和带有标号的语句 120
5.8.1 语法 120
5.8.2 执行 120
5.8.3 例子 121
5.8.4 形成标号 121
5.9 if语句 121
5.9.1 语法 121
5.9.2 执行 121
5.9.3 例子 121
5.9.4 嵌套 121
5.10 空语句 122
5.10.1 语法 122
5.10.2 执行 122
5.10.3 例子 122
5.10.4 标号和空语句 122
5.11 return语句 123
5.11.1 语法 123
5.11.2 执行 123
5.11.3 例子 123
5.11.4 省略return语句 123
5.12 switch语句 123
5.12.1 语法 123
5.12.2 执行 124
5.12.3 例子 124
5.12.4 标号语句 125
5.13 while语句 126
5.13.1 语法 125
5.13.2 执行 125
5.13.3 例子 125
第六章 函数 126
6.1 引言 126
6.2 函数定义 126
6.3 返回值类型 127
6.4 形式参数 129
6.5 函数体 130
6.6 函数说明 130
6.7 静态函数 131
6.8 函数调用 131
6.9 实在参数 132
6.10 基本类型 132
6.11 数组 132
6.12 结构和联合 133
6.13 指针 133
6.14 函数指针 134
6.15 递归函数 135
第七章 预处理伪指令 136
7.1 引言 136
7.2 define伪指令 136
7.3 undefine伪指令 138
7.4 include伪指令 138
7.5 if、elif、else和endif伪指令 139
7.6 if defined和elif defined伪指令 141
7.7 if def和ifndef伪指令 142
7.8 line控制伪指令 142
附录A 差异 143
附录B C编译程序信息和限制 144
引言 144
编译程序出错信息 144
警告信息 144
程序出错信息 147
严重错误信息 154
编译程序限制 155
第三册 库函数程序员手册 157
第一章 引言 157
1.1 使用C语言库函数 157
1.2 符号约定 157
第二章 使用标准I/O函数 158
2.1 引言 158
2.1.1 为I/O函数做准备 158
2.1.2 专用名 158
2.1.3 专用宏 158
2.2 使用命令行参数 158
2.3 使用标准文件 159
2.3.1 从标准输入读 160
2.3.2 向标准输出写 161
2.3.3 改向标准输入 163
2.3.4 改向标准输出 163
2.3.5 用管道线连接标准输入和标准输出 163
2.3.6 程序实例 163
2.4 使用与字符流有关的函数 164
2.4.1 使用文件指针 164
2.4.2 打开文件 165
2.4.3 读单个字符 165
2.4.4 从文件中读一个字符串 166
2.4.5 从文件中读记录 166
2.4.6 从文件中读格式化数据 167
2.4.7 写单个字符 167
2.4.8 向文件中写一个字符串 167
2.4.9 写格式化输出 168
2.4.10 将记录写到文件中 168
2.4.11 测试文件尾 169
2.4.12 测试文件错误 169
2.4.13 关闭文件 169
2.4.14 程序实例 170
2.5 使用更多的与字符流有关的函数 171
2.5.1 使用带缓冲的输入和输出 171
2.5.2 重新打开文件 171
2.5.3 设置缓冲区 172
2.5.4 把一个字符放回缓冲区 172
2.5.5 刷新文件缓冲区 173
2.6 使用低级函数 173
2.6.1 使用文件描述字 173
2.6.2 打开文件 173
2.6.3 从文件中读字节 174
2.6.4 向文件中写字节 174
2.6.5 关闭一个文件 176
2.6.6 程序实例 175
2.6.7 使用随机存取I/O 176
2.6.8 移动字符指针 177
2.6.9 在字符流中移动字符指针 177
2.6.10 重卷文件 178
2.6.11 获取当前字符位置 178
第三章 屏幕处理 179
3.1 引言 179
3.1.1 屏幕处理概观 179
3.1.2 使用库函数 180
3.2 屏幕更新 180
3.2.1 命名规则 180
3.2.2 术语 181
3.3 准备屏幕 182
3.3.1 初始化屏幕 182
3.3.2 开始 182
3.3.3 使用终端特性和类型 182
3.3.4 Termcap中的功能 183
3.3.5 使用缺省终端方式 184
3.3.6 使用缺省密口标志 184
3.3.7 使用缺省终端大小 184
3.3.8 结束屏幕处理 184
3.3.9 怎样使用屏幕软件包 185
3.3.10 输出 185
3.3.11 输入 185
3.4 使用标准屏幕 186
3.4.1 函数 186
3.4.2 加一个字符 186
3.4.3 加一个字符串 186
3.4.4 印出字符串、字符和数 186
3.4.5 从键盘读一个字符 187
3.4.6 从键盘读一个字符串 187
3.4.7 读字符串、字符和数 187
3.4.8 移动当前位置 188
3.4.9 插入一个字符 188
3.4.10 插入一行 188
3.4.11 删除一个字符 189
3.4.12 删除一行 189
3.4.13 清屏幕 190
3.4.14 清屏幕的一部分 190
3.4.15 由标准屏幕更新 190
3.5 创建并使用窗口 190
3.5.1 创建一窗口 190
3.5.2 创建一子窗口 191
3.5.3 附加并在窗口中印出 191
3.5.4 读取并扫描输入 192
3.5.5 在窗口内移动当前位置 193
3.5.6 插入字符 193
3.5.7 删除字符和行 194
3.5.8 清屏幕 194
3.5.9 由一窗口更新 195
3.5.10 窗口的覆盖 195
3.5.11 复写屏幕 196
3.5.12 移动窗口 196
3.5.13 由窗口读一字符 196
3.5.14 修饰窗口 197
3.5.15 删除一窗口 197
3.6 使用其它的窗口函数 197
3.6.1 画一个盒子 197
3.6.2 显示黑体字符 198
3.6.3 恢复正常字符 198
3.6.4 获取当前位置 198
3.6.5 置窗口标志 199
3.6.6 滚动窗口 199
3.7 窗口结构 199
3.7.1 例子 200
3.7.2 屏幕更新 200
3.7.3 Twinkle 200
3.8 Life 202
3.8.1 移动优化 205
3.8.2 Twinkle 205
3.9 用动作组合成移动 206
3.10 控制终端 206
3.10.1 终端方式 206
3.10.2 设置终端方式 206
3.10.3 清终端方式 207
3.10.4 移动终端光标 207
3.10.5 获取终端方式 208
3.10.6 用gettmode()设置变量 208
3.10.7 保存及恢复终端方式 208
3.10.8 置终端类型 208
3.10.9 由setterm()设置的变量 208
3.10.10 读终端的名字 209
第四章 字符和字符串处理 210
4.1 引言 210
4.2 使用字符函数 210
4.2.1 测试一个ASCII字符 210
4.2.2 转换成ASCII字符 210
4.3 测试字母数字 211
1.3.1 测试一个字母 211
4.3.2 测试一个控制字符 211
4.3.3 测试一个十进制数字 212
4.3.4 测试一个十六进制数字 212
4.3.5 测试一个可打印字符 212
4.3.6 测试一个标点 212
4.3.7 测试一个空白格字符 212
4.3.8 测试一个字母的大小写 212
4.3.9 字母大小写的转换 213
4.4 使用字符串函数 213
4.4.1 连接字符串 213
4.4.2 比较字符串 214
4.4.3 拷贝字符串 214
4.4.4 获取一个字符串的长度 214
4.4.5 把字符连接到字符串上 215
4.4.6 比较字符串中的字符 215
4.4.7 把字符拷贝到字符串上 215
4.4.8 从一个字符串中读值 216
4.4.9 向一个字符串中的写值 216
第五章 使用进程控制 218
5.1 引言 218
5.2 使用进程 218
5.3 调用一个程序 218
5.4 停止一个程序 219
5.5 开始一个新程序 219
5.6 通过shell执行一个程序 221
5.7 复制一个进程 221
5.8 等待一个进程 222
5.9 继承打开的文件 222
5.10 程序实例 222
第六章 创建并使用管道 224
6.1 引言 224
6.2 给新进程打开一个管道 224
6.3 读写一个管道 224
6.4 关闭一个管道 225
6.5 打开一个低级管道 225
6.6 读写一个低级管道 226
6.7 关闭一个低级管道 226
6.8 程序实例 227
第七章 使用信号 229
7.1 引言 229
7.2 使用信号函数 229
7.2.1 使一个信号无效 229
7.2.2 恢复一个信号的缺省动作 230
7.2.3 捕捉一个信号 231
7.2.4 恢复一个信号 232
7.2.5 程序实例 232
7.3 用信号控制执行 233
7.3.1 延迟一个信号的动作 233
7.3.2 在系统函数中使用延迟信号 233
7.3.3 在交互式程序中使用信号 234
7.4 在多进程中使用信号 235
7.4.1 保护后台进程 236
7.4.2 保护父进程 236
第八章 使用系统资源 237
8.1 引言 237
8.2 分配空间 237
8.2.1 为一变量分配空间 237
8.2.2 为一个数组分配空间 238
8.2.3 重新分配空间 238
8.2.4 释放不用的空间 239
8.3 封锁文件 239
8.3.1 为封锁文件做准备 239
8.3.2 封锁一个文件 239
8.3.3 程序实例 240
8.4 使用信号量 240
8.4.1 创建一个信号量 241
8.4.2 打开一个信号量 241
8.4.3 请求对一个信号量的控制 242
8.4.4 检查信号量的状态 242
8.4.5 放弃对一信号量的控制 243
8.4.6 程序实例 243
8.5 使用共享数据 244
8.5.1 建立一个共享数据段 244
8.5.2 附加一个共享数据段 245
8.5.3 进入一个共享数据段 246
8.5.4 离开一个共享数据段 246
8.5.5 获取当前版本号 247
8.5.6 等待一个版本号 247
8.5.7 释放一个共享数据段 247
8.5.8 程序实例 247
第九章 错误处理 248
9.1 引言 249
9.2 使用标准出错文件 249
9.3 使用errno变量 249
9.4 印出出错信息 250
9.5 使用出错信号 250
9.6 遇到系统错误 251
附录A 汇编语言接口 252
A.1 引言 252
A.2 C调用序列 252
A.3 进入一个汇编例程 252
A.4 返回值 253
A.5 退出一个子程序 253
A.6 程序实例 253
附录B XENIX系统调用 255
B.1 引言 255
B.2 可执行文件格式 255
B.3 修正的系统调用 255
B.4 版本7的扩充部分 255
B.5 对ioctl函数的修改 256
B.6 路径名解释 256
B.7 使用mount和chown函数 256
B.8 专用块格式 256
B.9 分离版本库 256
附录C XENlX和DOS的公用库 257
C.1 引言 257
C.2 公用include文件 257
C.3 公用子程序间的差异 258
abort 258
access 258
chdir 258
chmod 258
chsize 259
creat 259
exec 259
exit 259
fopen,fdopen,freopen 259
fread 260
fseek 260
fwrite 260
getpid 260
isatty 260
iseek 260
mktemp 260
open 260
read 261
sbrk 261
signal 261
star,fstat 261
system 262
umask 262
unlink 262
write 262
C.4 定义中的差异 262
C.5 DOS专用子程序 263
eof 263
fcloseall 263
f?etchar 263
filelength 263
llushall 263
fputchar 263
itoa,ltoa和ultoa 264
labs 264
mkdir 264
rmdir 264
SDawn 265
strlwr和strupr 266
strset和strnset 266
strrev 266
tell 267
第四册 正文格式指南 268
第一章 正文格式化概论 268
1.1 引言 268
1.2 基本概念 268
1.2.1 书写工作的类型 269
1.2.2 文本的组成 269
1.2.3 格式加工的特点 270
1.2.4 工具库 270
1.3 格式化文本 271
1.3.1 宏(mm) 271
1.3.2 支持工具 271
1.3.3 调用程序的顺序 271
1.4 样本 272
1.4.1 输入正文和格式化命令 272
1.4.2 格式化正文 273
1.4.3 打印文本 273
1.5 管理书写工程 274
1.5.1 文本的生命周期 274
1.5.2 组织你的工程 274
1.5.3 捷径 275
1.6 注释 276
第二章 书写和编辑工具 278
2.1 引言 278
2.2 cut和paste 278
2.3 书写工具 279
2.3.1 spell 279
2.3.2 style和diction 280
2.4 其它有用的命令 286
2.4.1 grep 286
2.4.2 diff,diff3和comm 286
2.4.3 sort 287
2.4.4 wc 287
第三章 使用宏(mm) 288
1.1 开始 288
3.1.1 插入宏 288
3.1.2 引用mm 289
3.2 基本的格式化宏 289
3.2.1 段和标题 290
3.2.2 表 291
3.2.3 字体的变化和下划线 292
3.2.4 脚注 292
3.2.5 显示和表格 292
3.2.6 节略 293
3.2.7 多列格式 293
3.3 使用nroff和troff命令 293
3.4 用mmcheck检查mm输入 293
第四章 mm参考 295
4.1 引言 295
4.1.1 为什么要用mm? 295
4.1.2 组织和约定 295
4.1.3 文本的结构 295
4.1.4 定义 296
4.2 引用宏 296
4.2.1 mm命令 296
4.2.2 -cm或-mm标志 296
4.2.3 典型的命令行 296
4.2.4 命令行参数 297
4.2.5 省略-cm和-mm 998
4.3 格式化概念 298
4.3.1 参数和引用 299
4.3.2 不可填充的空白 299
4.3.3 连字 299
4.3.4 制表符 300
4.3.5 点符 300
4.3.6 破折号、减号和连字号 300
4.3.7 商标串 300
4.4 段和标题 301
4.4.1 段 301
4.4.2 带有编号的标题 301
4.4.3 标题的形式 302
4.4.4 粗体、斜体和加下划线的标题 303
4.4.5 标题的点大小 303
4.4.6 标志的形式 303
4.4.7 不加编号的标题 304
4.4.8 标题和目录表 304
4.4.9 第一级标题和页编号形式 304
4.4.10 用户退出宏 304
4.5 表 305
4.5.1 嵌套表的例 306
4.5.2 表项 307
4.5.3 表结束 308
4.5.4 初始化自动编号的表 308
4.5.5 带点标记的表 308
4.5.6 带有破折号标记的表 308
4.5.7 带有标记的表 308
4.5.8 引用表 309
4.5.9 可变表项的表 309
4.5.10 表开始宏和规定格式的表 310
4.6 显示 311
4.6.1 静态显示 311
4.6.2 浮动显示 312
4.6.3 表格 313
4.6.4 公式 314
4.6.5 图表、表格、公式和显示标题 315
4.6.6 图形、表格、公式和显示列表 315
4.7 脚注 315
4.7.1 脚注正文格式 316
4.8 页题头和脚标 317
4.8.1 缺省题头和脚标 318
4.8.2 页题头 318
4.8.3 偶页题头 318
4.8.4 奇页题头 318
4.8.5 页脚标 318
4.8.6 偶页脚标 318
4.8.7 奇页脚标 319
4.8.8 第一页的脚标 319
4.8.9 带有节、页编号的缺省题头和脚标 319
4.8.10 题头和脚标宏中的字符串和寄存器 319
4.8.11 题头和脚标的例 319
4.8.12 一般性的页顶格式加工 319
4.8.13 一般性的页底格式加工 320
4.8.14 顶部和底部的页边自 320
4.9 目录 320
4.10 参考文献 321
4.10.1 参考文献的自动编号 321
4.10.2 定界参考正文 321
4.10.3 后继的参考文献 321
4.10.4 参考文献页 322
4.11 其它特性 322
4.11.1 粗体、斜体和罗马字体 322
4.11.2 正确的边白调整 323
4.11.3 SCCS版本标识 323
4.11.4 双列输出 323
4.11.5 垂直间距 324
4.11.6 跳页 324
4.11.7 强置到奇编号页 324
4.11.8 设置点大小和垂直间距 324
4.11.9 交互式的插入正文 325
4.12 备忘录和发表的论文格式 325
4.12.1 标题 325
4.12.2 作者 325
4.12.3 技术摘要编号 326
4.12.4 摘要 326
4.12.5 其它关键字 327
4.12.6 摘要类型 327
4.12.7 日期和格式的变化 327
4.12.8 改变第一页的格式 327
4.12.9 发表的论文类型 328
4.12.10 开始宏的引用序列 328
4.12.11 便笺结束的宏 329
4.12.12 版权及其它注释 329
4.12.13 批准的签字行 330
4.12.14 一页长的信 330
4.12.15 封面 330
4.13 保留名 330
4.13.1 格式化程序使用的名字 331
4.13.2 mm使用的名字 331
4.13.3 ean/neqn和tbl使用的名字 331
4.13.4 用户可定义的名字 331
4.18.5 扩展的例 332
4.14 错误 332
4.14.1 输出的消失 332
4.14.2 mm错误信息 333
4.14.3 格式化程序的错误信息 334
4.15 宏、串和数值寄存器小结 335
4.15.1 串 340
4.15.2 数值寄存器 340
第五章 使用nroff和troff 344
5.1 引言 344
5.2 插入命令 344
5.3 点大小和行间距 345
5.4 字体和特殊字符 346
5.5 缩进和行长 348
5.6 制表键 349
5.7 画线和字符 349
5.8 字符串 351
5.9 宏 352
5.10 标题、页和编号 353
5.11 数值寄存器和算术计算 355
5.12 带参数的宏 356
5.13 条件 357
5.14 环境 358
5.15 转移 359
第六章 nroff和troff参考 361
6.1 引言 361
6.1.1 引用nroff和troff 361
6.1.2 技术信息 362
6.2 基本的格式化请求 363
6.2.1 字体和字符大小控制 363
6.2.2 页控制 365
6.2.3 正文的填充、调整和居中 365
6.2.4 纵向留空白 366
6.2.5 行长和缩进 367
6.2.6 制表符、题头字符和字段字符 368
6.2.7 应用连字符 368
6.2.8 三元标题 369
6.2.9 给输出行编号 369
6.3 字符转换、重叠和局部移动 370
6.3.1 输入/输出约定和字符转换 370
6.3.2 局部移动和宽度函数 371
6.3.3 重叠、括号、画线和零宽度函数 371
6.4 格式化控制设施 372
6.4.1 宏、串、转移和设置陷井 372
6.4.2 数值寄存器 374
6.4.3 有条件的接收输入 375
6.4.4 环境转换 376
6.4.5 从标准输入插入 376
6.4.6 输入/输出文件转换 376
6.4.7 其它请求 377
6.5 输出和出错信息 377
6.6 转义序列和数值寄存器小结 377
6.6.1 字符、指示符和函数的转义序列 377
6.6.2 预先定义的通用数值寄存器 378
6.6.3 预先定义的只读数值寄存器 379
第七章 格式化表格 380
7.1 引言 380
7.2 输入格式 380
7.2.1 任选项 381
7.2.2 格式 381
7.2.3 其它特征 383
7.2.4 数据 384
7.2.5 附加的命令行 385
7.3 引用tbl 386
7.4 实例 387
7.5 tbl命令小结 391
第八章 格式化数学公式 393
8.1 引言 393
8.2 显示的公式 394
8.3 基本的数学结构 394
8.3.1 下标和上标 394
8.3.2 用于组合的括号 395
8.3.3 分数 396
8.3.4 平方根 396
8.3.5 求和与积分 397
8.4 复杂的数学结构 397
8.4.1 大的中括号、小括号和直线 397
8.4.2 堆 398
8.4.3 矩阵 398
8.4.4 排列公式 399
8.5 数学正文的编排和设计 399
8.5.1 输入空格 399
8.5.2 输出空格 400
8.5.3 特殊序列间的空格 400
8.5.4 符号、专用名和希腊字符 400
8.5.5 大小和字体的变化 400
8.5.6 区别标记 401
8.5.7 引用正文 402
8.5.8 局部移动 402
8.6 行内公式 403
8.7 定义 403
8.8 引用eqn 404
8.9 公式实例 404
8.10 出错信息 405
8.11 关键字和优先级小结 406
附录A XENIX正文格式化命令 409
引言 409
COL(CT) 410
CUT(CT) 410
CW(CT) 411
DEROFF(CT) 414
DICTION(CT) 416
DIFFMK(CT) 415
EQN(CT) 416
EXPLAIN(CT) 418
HYPHEN(CT) 419
MAN(CT) 419
MM(CT) 420
MMCHECK(CT) 422
MMT(CT) 422
NROFF(CT) 423
PASTE(CT) 424
PREP(CT) 425
PTX(CT) 426
SOELIM(CT) 427
SPELL(CT) 427
STYLE(CT) 428
TBL(CT) 429
TROFF(CT) 431