4.指令架构

整体架构

  • 一般情况下,脚本运行在按键上。
  • 每个按键可以看做一个单独的线程,多线程运行。
  • 每个线程寄存器独立,但可通过指针访问共享内存区域。
  • 每个线程有4个8位参数寄存器(参数通过按键传入,非只读,可以独立重载)、4个32位专用寄存器(作为数据暂存或指针)、1个32位A寄存器(用于累加、乘除)、1个32位B寄存器(用作除法)。

跳转控制

  • 为更简单的进行跳转而无需计算地址,引入了FLAG。
  • 可通过SET_FLAG指令将下一条指令的地址压入寄存器。
  • 跳转时,如果寄存器为0则向下搜索。

寄存器

名称 取值范围 读写 用法
参数1~参数4 0~255 RW 按键传入/通用寄存器
R0~R3 0~4294967295 RW 通用寄存器
A 0~4294967295 RW 累加器/通用寄存器
B 0~4294967295 RW 除法寄存器/通用寄存器
DPTR 0~4294967295 RW 通用寄存器
P_R0~P_R3 ? RW 共享RAM内存区域指针
P_DPTR RO 数据指针
IO 0~255 RO IO状态,0=未按下
SYS_TIME_MS 0~4294967295 RO 系统时间,毫秒
SYS_TIME 0~4294967295 RO 系统时间,秒
SYS_KB_LED 0~255 RO 系统键盘LED状态
SYS_KEY_NUM 0~4294967295 RO 系统键盘按键计数
SYS_KEY_LAY 0~255 RO 系统键盘当前层级