第一章 概述 1
1.1 产品的定义 1
1.2 PL/M-51语言 1
1.3 两种PL/M-51语句 2
1.4 模块化结构 3
1.5 可执行的语句 4
1.6 内部过程 7
1.7 表达式 7
1.8 程序开发过程 7
第二章 PL/M-51程序基础2.1 PL/M-51字符集 8
2.2 标识符及保留字 8
2.3 记号,分隔符,和空白的用法 9
2.4 常数 10
2.5 注释 11
第三章 声明 12
3.1 变量声明语句 12
3.2 类型 12
3.3 地址空间及后缀 14
3.4 编译常数(正文置换):LITERALLY的用法 18
3.5 声明标号的名称 19
3.6 组合的DECLARE语句 19
3.7 过程的声明 20
第四章 数据类型及基变量4.1 字节及字的算法 21
4.2 点(·)操作符 21
4.3 通过位置访问存放串及常数 22
4.4 基变量 22
4.5 位置访问与基变量 23
4.6 存贮的邻接性 25
4.7 AT属性 25
第五章 表达式及赋值 27
5.1 操作数 27
5.2 操作数及表达式类型 28
5.3 算术操作符 29
5.4 关系操作符 30
5.5 逻辑操作符 30
5.6 表达式求值 31
5.7 赋值语句 32
5.8 特殊情况:常数表达式 33
第六章 结构与数组 35
6.1 数组与下标变量 35
6.2 结构 36
6.3 访问数组和结构 37
第七章 程序控制语句 39
7.1 DO及END语句:DO程序 39
7.2 IF语句 44
7.3 GOTO语句 46
7.4 CALL及RETURNAYGK QKD 47
7.5 NULL语句 47
第八章 示范程序1 48
8.1 插入排序算法 48
第九章 程序块结构、作用域以及使用期规则9.1 作用域 51
9.2 程序块内有效的名称 51
9.3 多重声明的限制 51
9.4 使用期规则 54
9.5 扩展的作用域:PUBLIC及EXTERNAL属性 54
9.6 标号的作用域及有关GOTO的约束 56
第十章 过程及中断 58
10.1 过程的声明 58
10.2 激活一个过程:函数访问及CALL语句 61
10.3 从过程退出:RETURN语句 62
10.4 过程体 62
10.5 属性:PUBLIC及EXTERNAL,INTERRUPT,USING,INDIRECTLY-CALLABLE 63
第十一章 内部过程 66
11.1 获取变量信息 66
11.2 显式类型及值的变换 67
11.3 SHIFT及ROTATE函数 68
11.4 INPUT及OUTPUT 69
11.5 其它的内部过程 69
第十二章 与8051硬件标志有关的特性12.1 优化及8051硬件标志 70
12.2 PLUS及MINUS操作符 70
12.3 内部进位循环移位函数 70
12.4 DEC函数 71
第十三章 程序库PLM51.LIB 72
第十四章 编译程序引用及控制项14.1 编译程序控制项介绍 73
14.2 WORKFILES控制项 74
14.3 目标文件控制项 74
14.4 列表选择及内容控制项 80
14.5 列表格式控制项 81
14.6 程序清单 82
14.7 符号清单及交叉访问清单 83
14.8 警告及编译总结 83
14.9 源文件包括控制项 84
14.10 条件编译控制 85
第十五章 目标模块段 87
15.1 模块 87
15.2 致命的命令结尾及控制项出错 90
15.3 致命的输入/输出错误 90
15.4 调试信息 89
第十六章 出错信息 90
16.1 PL/M-51源程序出错 90
16.2 致命的命令结尾及控制项出错 90
16.3 致命的输入/输出错误 90
16.4 致命的存贮器不够出错 91
16.5 致命的编译程序失败错误 91
16.6 出错信息 91
附录A PL/M-51语言的语法 96
附录B 程序的约束 100
附录C PL/M-51保留字 101
附录D 预先声明了的标识符 102
附录E PL/M-80及PL/M-51之间的区别 103
附录F ASCII代码 105
附录G PL/M-51与ASM51接口 107
附录H 运行时的中断处理 109
附录I 处理器的描述符文件 112
附录J 示范程序2 119
附录K 如何生成较好的程序代码 124
附录L 有效的PL/M-51语句 125