实现指令编解码与反汇编,冻结 disasm 格式。
- Encode.h/Encode.cpp:encode/decode 往返 + disasm 一行文本 - 指令与映像.md 新增反汇编格式表(9 种形态 + 未知操作码) - Op.h STORE_* 注释对齐 disasm(rs, slot 寄存器在前)
This commit is contained in:
@@ -107,6 +107,25 @@ RET
|
||||
`I`/`Q`/`M` 走映像指令,不是通用寄存器。
|
||||
FB 实例固定布局,字段偏移编译期算死。
|
||||
|
||||
### 反汇编格式(disasm)
|
||||
|
||||
`disasm` 输出一条指令的一行文本,格式冻结:
|
||||
|
||||
| 形态 | 格式 | 示例 |
|
||||
|---|---|---|
|
||||
| 二寄存器 | `MOVE rd, rs` / `NOT rd, rs` | `MOVE r1, r2` |
|
||||
| 三寄存器 | `OP rd, ra, rb`(逻辑 / 算术 / 比较) | `ADD r1, r2, r3` |
|
||||
| 常量 | `LOADK rd, imm` | `LOADK r0, 3` |
|
||||
| 无条件跳转 | `JMP off` | `JMP +4` |
|
||||
| 条件跳转 | `JT rd, off` / `JF rd, off` | `JT r0, -1` |
|
||||
| I/Q/M/全局 | `LOAD_I rd, slot` 等;STORE 同形 `STORE_Q rs, slot` | `LOAD_I r0, 2` |
|
||||
| FB 内置 | `CAL_TON instance` 等 | `CAL_TON 0` |
|
||||
| 调用 | `CALL fn_id` | `CALL 1` |
|
||||
| 返回 | `RET` | `RET` |
|
||||
| 未知操作码 | `??? 0x<hex>` | — |
|
||||
|
||||
跳转偏移带符号、恒显正负号(`%+d`);寄存器一律 `r<n>`;常量/槽号/`fn_id` 无符号十进制。
|
||||
|
||||
---
|
||||
|
||||
## 映像
|
||||
|
||||
Reference in New Issue
Block a user