步骤E:文档收尾——基址寻址落地同步(编译器优化/寄存器码/用例对照/指令与映像/指令集清单/指令执行)

This commit is contained in:
2026-08-27 09:23:12 +08:00
parent 766e3a39b2
commit c53e84f180
6 changed files with 40 additions and 28 deletions
+7 -7
View File
@@ -78,15 +78,15 @@ PROGRAM MAIN → fn0: RETnregs=8, 4 字节)✓
| max_stack | 192 = (12+11×8) + (12+10×8) | ✓ 编译期 DAG |
| 映射 | add: a=r1 b=r2 result=r0main: x=r8 | ✓ |
## 15_fb_instance:用户 FB 内联
## 15_fb_instance:用户 FB 共享体(函数化)
| 源码 | 指令 | 结论 |
|---|---|---|
| starter(start:=TRUE,...) | LOADK(TRUE)/STORE_OFF r9,s0,0LOADK(FALSE)/STORE_OFF r10,s0,1 | ✓ 字段@0/1 |
| Q := start AND NOT stop | LOAD_OFF s0,0 / JF / LOAD_OFF s0,1 / NOT / MOVE / STORE_OFF s0,2 | ✓ 内联+短路 |
| q := starter.Q | LOAD_OFF r8, s0, 2 | ✓ |
| starter(start:=TRUE,...) | LOADK(TRUE)/STORE_OFF r9,s0,0LOADK(FALSE)/STORE_OFF r10,s0,1 → LOADK.U32 r1,1 → CALL 0 | ✓ 实参绝对槽 + r1 实例指针 |
| Q := start AND NOT stop | fn0(共享体):LOAD_PTR.U8 r8,r1,0 / JF / LOAD_PTR.U8 r10,r1,1 / NOT / MOVE / STORE_PTR.U8 r8,r1,2 | ✓ 基址寻址+短路 |
| q := starter.Q | LOAD_OFF r8, s0, 2 | ✓ 输出读绝对槽 |
值段 3B、映射 start@0 stop@1 q@2
值段 3B、映射 start@0 stop@1 q@2fn0 单函数体服务所有实例 ✓
## 17_ton:内建 TON
@@ -112,8 +112,8 @@ PROGRAM MAIN → fn0: RETnregs=8, 4 字节)✓
| 源码 | 指令 | 结论 |
|---|---|---|
| starter(start:=I0_0, stop:=I0_1) | LOAD.U8 r8,s1 → STORE_OFF s4,0LOAD.U8 r9,s2 → STORE_OFF s4,1 | ✓ I 读 |
| Q := start AND NOT stop AND NOT EmergencyStop | LOAD_OFF s4,0/JF/LOAD_OFF s4,1/NOT/MOVE/JF/LOAD s0(急停)/NOT/MOVE/STORE_OFF s4,2 | ✓ 双短路+全局 |
| starter(start:=I0_0, stop:=I0_1) | LOAD.U8 r8,s1 → STORE_OFF s4,0LOAD.U8 r9,s2 → STORE_OFF s4,1 → LOADK.U32 r1 → CALL 0 | ✓ I 读 + 共享体调用 |
| Q := start AND NOT stop AND NOT EmergencyStop | fn0LOAD_PTR r1,0/JF/LOAD_PTR r1,1/NOT/MOVE/JF/LOAD s0(急停)/NOT/MOVE/STORE_PTR r1,2 | ✓ 基址+双短路+全局 |
| Q0_0 := starter.Q | LOAD_OFF s4,2 / STORE.U8 r8,s3 | ✓ Q 写 |
槽表 5 条(addr 0..4)、值段 7B ✓