admin 管理员组文章数量: 1086019
2024年3月11日发(作者:partition函数用法)
脚本解释器设计说明
1.概要说明
该解释器分为两个过程:脚本的编译和执行。
编译过程:运行于PC机环境下,负责对txt格式测试脚本进行解析,生成
指令代码和数据文件。
执行过程:运行于嵌入式环境下,执行下载到嵌入式环境下的指令代码。指
令代码在ROM下,数据文件在外部存储区。
2.设计说明
2.1 指令代码
1.) 格式
一条指令由10个字节组成。
行号 指令 属性
行号:
指令:
操作数一 操作数二
2Byte-int
中间结果
2Byte-int 2Byte-uint 1Byte-uchar 1Byte-uchar 2Byte-int
原txt脚本语句所在行号;表示范围0-65535
执行的指令标号;
高4位表示指令类型,低4位表示指令符。
操作数: 指令操作参数标号,该标号指向数据文件中变量的索引
属性: 高4位指令终止标识(0x00-未终止,0x01已终止),低4位表
示指令属性
中间结果: 用于存储(RAM)计算指令所得中间结果变量标号。
2.) 指令名
分类 标号 名称 说明
0x01 I_LT <
0x02 I_LE <=
0x03 I_GT >
0x04 I_GE >=
0x05 I_EQ ==
0x06 I_NE !=
表达式计算
0x07 I_ADD +
0x08 I_DEC -
0x09 I_MUL *
0x0a I_DIV /
0x0b I_ASIGN =
0x0c I_NOT !
0x0d I_AND &&
0x0e I_OR ||
指令跳转 0x10 I_GOTO
函数调用
命令
3.)指令说明
指令类别
表达式计算
0x20
0x30
I_API
I_CMD
属性说明(低4位) 操作数一
0-整型计算
1-字符串连接
采用整型数表示该数
据在数据文件中的标
号
操作数二
中间结果
中间结果标号为:
-1,-2,-3。表示
三个内存变量
指令跳转 3-4bit 00–无条件跳
转
3-4bit 01–有条件跳
转
1-2bit 00-假值跳转
1-2bit 01-真值跳转
0 指令索引号 0
条件值量的标号(一般
为中间结果)
指令索引号 0
函数调用
命令
-
-
函数标号
该行卡命令标号
0
0
有
0(执行结果默认
存于系统变量)
4.)中间结果
中间结果存放在内存中,供表达式计算存放中间计算结果,分配三个,循环
使用。
5.)指令数据结构
结构表示如下:
typedef struct Program
{
unsigned int
unsigned char
unsigned char
int
int
int
line_no; // 原txt脚本行号
token; // 指令值
attri; //指令属性
//操作数一
//操作数二
param_one;
param_two;
param_tmp; //中间结果
}Program;
2.2 数据文件
版权声明:本文标题:脚本解释器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710111810a558261.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论