目录
第一章 PL/M语言基本知识
1.1 概述
1.1.1 PL/M语言及其特点
1.1.2 使用PL/M语言的必要性
1.1.3 书中的约定
1.2 字符集、标识符、保留字和预说明的标识符
1.2.1 字符集
1.2.2 标识符、保留字和预说明的标识符
1.2.3 符号、分界符和空符号的作用
1.2.4 注释
1.3 常数
1.3.1 纯数常数
1.3.2 浮点常数
1.3.3 字符串
1.4 简单说明语句
1.5 变量、变量类型、数据类型
1.5.1 标量变量和变量
1.5.2 类型
1.5.3 字节(BYTE)、字(WORD)和双字(DWORD)变量
1.5.4 整型(INTEGER)、短整型(SHORTINT)和长整型(LONGINT)变量
1.5.5 实型(REAL)变量
1.5.6 地址型(ADDRESS)变量
1.5.7 “点”运算符(.)和地址引用
1.5.8 FAST和SLOW属性
1.5.9 隐含类型转换
1.6 运算、表达式及规则
1.6.1 运算对象
1.6.2 表达式
1.6.3 算术运算及其表达式
1.6.4 关系运算及其表达式
1.6.5 逻辑运算及其表达式
1.6.6 表达式计算
1.6.7 常数表达式计算
1.7 数组和结构
1.7.1 数组说明
1.7.2 下标变量
1.7.3 结构
1.7.4 结构数组
1.7.5 结构内数组
1.7.6 结构数组内数组
1.7.7 数组的隐含长度说明
1.8 对变量(包括数组和结构)的引用
1.8.1 完全限定的变量引用
1.8.2 非限定的变量引用
1.8.3 部分限定的变量引用
1.9 有基变量
1.9.1 有基变量
1.9.2 有基变量和地址引用应用举例
1.10 高级说明语句
1.10.1 概述
1.10.2 连接属性说明(PUBLIC和EXTERNAL)――扩展作用域
1.10.3 AT属性说明
1.10.4 DATA赋值
1.10.5 语句标号说明
1.10.6 文字(LITERALLY)说明及用途
1.10.7 组合说明语句
1.11 存储的相邻性
第二章 PL/M-96可执行语
2.1 赋值语句
2.1.1 赋值语句
2.1.2 多次赋值语句
2.1.3 内嵌赋值语句
2.2 DO程序块
2.2.1 简单DO程序块
2.2.2 DOWHILE程序块
2.2.3 循环DO程序块
2.2.4 DOCASE程序块
2.3 条件(IF)语句
2.3.1 IF语句
2.3.2 嵌套IF语句
2.3.3 顺序IF语句
2.4 语句标号和GOTO语句
2.5其它可执行语句
2.5.1调用(CALL)和返回(RETURN)语句
2.5.2空语句(;)
2.5.3开中断(ENABLE)和关中断(DISABLE)语句
第三章 过程
3.1 概述
3.2 过程说明
3.2.1 参数
3.2.2 有类型过程和无类型过程
3.2.3 从过程的转出
3.2.4 过程体
3.3 过程的属性
3.3.1 公共(PUBLIC)和外部(EXTERNAL)属性
3.3.2 中断和中断属性(INTERRUPT)
3.3.3 ENABLE(开中断)和DISABLE(关中断)语句
3.3.4 重入性和REENTRANT(重入)属性
3.3.5 INDIRECTLY―CALLABLE(可间接调用)属性
3.3.6 INTERRUPT-CALLABLE(可中断调用)属性
3.4 过程的调用
3.4.1 函数引用
3.4.2 CALL调用
3.4.3 间接过程调用
3.4.4 调用其它模块中的过程
第四章 作用域和结构化程序
4.1 结构化程序
4.2 程序模块
4.2.1 程序的模块化结构
4.2.2 程序模块之间的连接
4.3 作用域
4.3.1 几个基本术语(层和内含)
4.3.2 作用域
4.4 标号作用域和对GOTO语句的限制
4.4.1 标号的作用域
4.4.2 对GOTO语句的限制
5.1.2 LAST过程
5.1.3 SIZE过程
5.2 类型转换
5.2.1 LOW、H1GH和DOUBLE过程
5.2.2 SHORT和EXTEND过程
5.2.3 SIGNED和UNSIGN过程
5.2.4 FLOAT和FIX过程
5.2.5 ABS和IABS过程
5.3 移位和循环移位过程
5.3.1 循环移位过程:ROL和ROR
5.3.2 逻辑移位过程:SHL和SHR
5.3.3 代数移位过程:SAL和SAR
5.4 串处理过程
5.4.1 MOVB和MOVW过程
5.4.2 CMPB和CMPW过程
5.4.3 FINDB和FINDW过程
5.4.4 sKIPB和SKIPW过程
5.4.5 sETB和sETW过程
5.5 位操作过程
5.5.1 BITSET过程
5.5.2 BITCLR过程
5.5.3 BITTST过程
5.5.4 BITCPL过程
5.5.5 BITAsN过程
5.6 其它内部过程和内部变量
5.6.1 MOVE过程
5.6.2 TIME过程
5.6.3 MEMORY数组
5.6.4 sTACKPTR变量
第六章 与MCS-96硬件有关的PL/M-96运算符和内部过程
6.1 优化和MCS-96硬件标志
6.2 PLUS和MINUS运算符
6.3 与硬件有关的PL/M-96内部过程
第七章 浮点运算库及有关过程
7.1 实型(REAL)数的表示
7.2 REAL数学部件
7.3 REAL运算中的例外状态
7.3.1 不合法操作例外
7.3.2 非规格化操作例外
7.3.3 被零除例外
7.3.4 上溢例外
7.3.5 下溢例外
7.3.6 精度降低例外
7.4 与浮点运算库有关的内部过程
7.4.1 初始化(INIT$REAL$MATH$UNIT)过程
7.4.2 设置控制字(sET$REAL$MODE)过程
7.4.3 获取出错字节(GET$REAL$ERROR)过程
7.4.4 保存REAL状态(SAVE$REAL$STATUS)过程
7.4.5 恢复REAL状态(RESTORE$REAL$STATUS)过程
7.4.6 浮点运算库中的开平方等过程
7.5 如何编写处理实数例外的过程
7.6 浮点运算库(FPAL96)连接
第八章 PL/M-96的编译和连接
8.1 编译程序控制
8.2 目标文件控制
8.2.1 优化(OPTIMIZE)控制
8.2.2 寄存器覆盖(REGOVERLAY/NOREGOVERLAY)控制
8.2.3 FAST(快速)控制
8.2.4 建立目标文件(OBJECT/NOOBJECT)控制
8.2.5 DEBUG/NODEBUG(调试)控制
8.2.6 TYPE/NOTYPE(类型)控制
8.3 列表选择和列表内容控制
8.3.1 PRINT/NOPRINT(打印输出)控制
8.3.2 LIST/NOLIST(源程序列表)控制
8.3.3 CODE/NOCODE(目标代码、汇编语句列表)控制
8.3.4 XREF/NOXREF(相互引用列表)控制
8.3.5 SYMBOLS/NOSYMBOLS(符号列表)控制
8.4 列表格式控制
8.4.1 PAGELENGTH(页长)控制
8.4.2 PAGEWIDTH(行宽)控制
8.4.3 TITLE(标题)控制
8.4.4 EJECT(换页)控制
8.5 应用实例
8.5.1 源程序和汇编代码列表
8.5.2 标识符和相互引用列表部分
8.5.3 编译概要
8.6 嵌入源文件控制
8.6.1 嵌入源文件(INCLUDE)控制
8.6.2 保存/恢复(SAVE/RESTORE)控制
8.7 条件编译控制
8.7.1 IF/ELsE/ELSEIF/ENDIF(条件编译)控制
8.7.2 sET /RESET(设置条件开关)控制
8.7.3 COND/NOCOND(条件列表)控制
8.8 用户程序目标模块的连接
8.8.1 使用RL96的一般格式
8.8.2 ROM控制
8.8.3 RAM控制
8.8.4 STACKSIZE控制
8.8.5 其它控制
8.9 编译、连接操作实例
8.10 PL/M语言和汇编语言及C语言程序接口
第九章 程序设计实例
9.1 样本程序1(分类程序)
9.2 样本程序2(使用过程的分类程序)
9.3 样本程序3(计算一组数据的均值、残差、方差、标准差)
9.4 样本程序4(PL/M语言程序中调用汇编语言程序)
9.5 样本程序5(A/D转换、D/A转换)
9.5.1 A/D转换程序
9.5.2 D/A转换(使用高速输出HSO)程序
9.5.3 在中断服务程序中使用HSO进行D/A转换
9.6 样本程序6(模块化结构程序)
第十章 PL/M-86
10.1 PL/M-86独有的内容
10.1.1 PL/M-86独有的运算符和保留字
10.1.2 PL/M-86独有的内部过程
10.1.3 PL/M-86编译程序独有的控制项
10.1.4 PL/M-86与PL/M-96的其它不同
10.2 PL/M-96独有内容
第十一章 PL/M-51
11.1 引言
11.2 存储空间及后缀
11.2.1 MAIN(片内直接寻址)后缀
11.2.2 AUXILIARY(片外数据存储空间)后缀
11.2.3 REGISTER(寄存器)后缀
11.2.4 IDATA(片内间接寻址)后缀
11.2.5 CONsTANT(程序存储空间)后缀
11.3 数据类型及基变量
11.3.1 位变量
11.3.2 基变量
11.3.3 字变量
11.4 内嵌赋值(PL/M-96独有)
11.5 过程和中断
11.5.1 有类型过程
11.5.2 INTERRUPT(中断)属性
11.5.3 REENTRANT(重人)属性(PL/M-96独有)
11.5.4 USING属性
11.6 内部过程
11.6.1 PL/M-51和PL/M-96共有的内部过程
11.6.2 PL/M-51独有的内部过程
11.6.3 PL/M-96独有的内部过程
11.6.4 与MCS-51硬件标志有关的过程
11.6.5 Intel实用程序库UTIL51.LIB
11.6.6 ECI浮点运算程序库FPAL51.LIB
11.7 编译控制项
11.7.1 PL/M-51和PL/M-96共有的编译控制项
11.7.2 PL/M-96独有的编译控制项
11.7.3 PL/M-51独有的编译控制项
11.8 连接定位控制项
11.8.1 列表控制项
11.8.2 连接控制项
11.8.3 定位控制项
11.8.4 结构控制
11.8.5 覆盖控制
11.9 PL/M-51与ASM-51连接
11.9.1 调用顺序
11.9.2 过程的结尾
11.9.3 从有类型过程回送的值
附录
附录A PL/M-96出错信息
A.1 PL/M-96源程序错误
A.2 命令错误
A.3 输入/输出错误
A.4 内存不足错误
A.5 编译程序故障错误
附录B PL/M特殊字符
附录C 程序限制
附录D PL/M语言保留字
D.1 PL/M-96保留字
D.2 PL/M-86保留字
D.3 PL/M-51保留字
附录E PL/M语言预说明的标识符
E.1 PL/M-96预说明的标识符
E.2 PL/M-86预说明的标识符
E.3 PL/M-51预说明的标识符
附录F MCs-961/O寄存器符号名
附录G ASCII字符表
附录H MCs―96系列汇编语言指令表
H.1 指令系统简表
H.2 指令操作码和执行时间
参考文献
· · · · · · (
收起)