四、P代码指令说明

由于系统较简单,所以对底层硬件也做了简化:

  1. 没有寄存器,只有一个数据栈
  2. 只能对主存进行存、取操作
  3. 只支持主存间接寻址
  4. 可以查找符号表中符号,返回该符号地址

 

指令表(未完成)

助记符 格式 说明
push push <address> 将<address>指向的内容压栈
pop pop <address> 将栈顶内容弹入<address>指向的位置
jmp jmp <address> 无条件跳转至<address>指向的代码
jt jt <address>, <goal> 如果<address>指向的内容为真则跳转至<goal>指向的代码

 

五、错误信息表

(定义在compiler.exception.ErrorMessage接口中)

ANALYZING_FAILURE 文件无法分析
CLASS_DEFINED 重复类定义
CLASS_NOT_DEFINED 类未定义
IDENTIFIER_DEFINED 重复标识符定义
IDENTIFIER_NOT_DEFINED 标识符未定义
ILLEGAL_EXPRESSION 非法表达式
ILLEGAL_GRAMMER 语法错误
ILLEGAL_OPERATION 非法操作
ILLEGAL_TOKEN 标识符无法分析
METHOD_DEFINED 重复方法定义
NOT_ALLOCATED 内存未分配
OUT_OF_MEMORY 内存已满
READ_FILE 文件无法读取
TYPE_UNMATCHED 类型不匹配