- 0
- 0
- 约3.46万字
- 约 61页
- 2016-12-05 发布于湖北
- 举报
PL/O编译程序的目标代码结构 PL/O编译程序所产生的目标代码是一个假想栈式计算机的汇编语言,可称为类PCODE指令代码,它不依赖任何实际计算机 此类栈式机没有累加器和通用寄存器,有一个栈式存储器,有四个控制寄存器(指令寄存器 I,指令地址寄存器 P,栈顶寄存器 T和基址寄存器 B),算逻运算都在栈顶进行。(这部分内容涉及到PL/0解释程序) PL/O编译程序的目标代码结构 指令格式 f 功能码 l 层次差(标识符引用层减去定义层) a 根据不同的指令有所区别 八条目标指令: PL/O编译程序的目标代码结构和代码生成 指令 “LIT 0 A” 立即数存入栈顶,即置T 所指存储单元的值为A T 加 1 LOD:将变量放到栈顶。a域为变量在所说明层中的相对位置,l为调用层与说明层的层差值。 STO:将栈顶的内容送入某变量单元中。a和l域的含意同LOD指令。 CAL:调用过程的指令。a为被调用过程的目标程序入口地址,l为层差。 INT:为被调用的过程(或主程序)在运行栈中开辟数据区。a域为开辟的单元个数。 JMP:无条件转移指令,a为转向地址。 JPC:条件转移指令,当栈顶的布尔值为非真时,转向a域的地址,否则顺序执行。 OPR:关系运算和算术运算指令。将栈顶和次栈顶的内容进行运算,结果存放在次栈顶。此外还可以是读写等特殊功能的指令,具体操作由a域值给出。(P23)
原创力文档

文档评论(0)