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 数据文件


本文标签: 指令 标号 脚本 结果 变量