步骤E:文档收尾——基址寻址落地同步(编译器优化/寄存器码/用例对照/指令与映像/指令集清单/指令执行)
This commit is contained in:
+6
-3
@@ -77,8 +77,10 @@ RET:
|
||||
槽号 slot(指令操作数,u32)→ 槽表条目(8B:addr:u32 + 预留:u32)→ 值区字节偏移 addr
|
||||
LOAD rd, slot → rd = 读 value[addr .. addr+宽)(按 func 宽度 + 扩展)
|
||||
STORE slot, rs → 写 value[addr .. addr+宽) = rs(按 func 宽度截断)
|
||||
LOAD_OFF rd, slot, off → 读 value[addr+off .. ](FB 字段访问)
|
||||
STORE_OFF slot, off, rs → 写 value[addr+off .. ](FB 字段访问)
|
||||
LOAD_OFF rd, slot, off → 读 value[addr+off .. ](FB 字段访问,绝对槽)
|
||||
STORE_OFF slot, off, rs → 写 value[addr+off .. ](FB 字段访问,绝对槽)
|
||||
LOAD_PTR rd, rs, off → 读 value[regs[rs] + off .. ](基址寻址:rs = 实例指针,FB 共享体函数体内)
|
||||
STORE_PTR rd, rs, off → 写 value[regs[rs] + off .. ](基址寻址)
|
||||
```
|
||||
|
||||
槽表条目数 = `n_slots`;槽号越界(`slot >= n_slots`)或地址 + 宽度越出值段 → `BadSlot`。
|
||||
@@ -97,7 +99,8 @@ STORE_OFF slot, off, rs → 写 value[addr+off .. ](FB 字段访问)
|
||||
| `JMP off` | `pc += off` |
|
||||
| `JT rd, off` / `JF rd, off` | `reg[rd] != 0`(JT)/ `== 0`(JF)时 `pc += off` |
|
||||
| `LOAD / STORE` | 见数据区访问(槽表两级) |
|
||||
| `LOAD_OFF / STORE_OFF` | 见数据区访问(FB 字段) |
|
||||
| `LOAD_OFF / STORE_OFF` | 见数据区访问(FB 字段,绝对实例槽) |
|
||||
| `LOAD_PTR / STORE_PTR` | 见数据区访问(基址寻址:rs 寄存器 = 值区地址 + 偏移;FB 共享体) |
|
||||
| `CAL fb_id, slot` | 见内置 FB(15 条) |
|
||||
| `CALL fn_id` / `RET` | 见帧与调用栈 |
|
||||
| `NOP` | 空转 |
|
||||
|
||||
Reference in New Issue
Block a user