主题
指令步数速查
| 软元件范围 | LD/LDI/AND/ANI/OR/ORI | OUT | SET/RST | PLS/PLF | LDP/LDF/ANDP/ANDF/ORP/ORF | MC |
|---|---|---|---|---|---|---|
| X0-X377 | 1 | - | - | - | 2 | - |
| Y0-Y377 | 1 | 1 | 1 | 2 | 2 | 3 |
| M0-M1535 | 1 | 1 | 1 | 2 | 2 | 3 |
| M1536-M3583 | 2 | 2 | 2 | 2 | 2 | 3 |
| M3584-M7679 | 3 | 3 | 3 | 3 | 3 | 4 |
| S0-S1023 | 1 | 2 | 2 | - | 2 | - |
| S1024-S4095 | 2 | 2 | 2 | - | 2 | - |
| T0-T511 | 1 | 3 | 2 | - | 2 | - |
| C0-C199 | 1 | 3 | 2 | - | 2 | - |
| C200-C255 | 1 | 5 | 2 | - | 2 | - |
| D□.b (LP3U) | 3 | 3 | 3 | 3 | - | - |
应用指令的步数:1 + 操作数个数 × 2
上面这张表只管位指令(LD/OUT/SET 这类)。MOV、CMP、ZRST 这些应用指令另算:
应用指令步数 = 1(操作码) + 操作数个数 × 2
32 位形态(D 前缀)= 1 + 操作数个数 × 4MOV D0 D2→ 1 + 2×2 = 5 步DMOV D0 D2→ 1 + 2×4 = 9 步- 浮点那一族(
DEADD/DEMOV/DEZCP等)只有 32 位形态,一律按 ×4 算 OUT T0 K50/OUT C0 K20是定时器、计数器的声明,实测占 3 步
步数不等于行数
算程序容量时用步数,不是数行。实测这份三行指令表:
LD M8000
MOV D0 D2
END编译返回 step_count = 7(1 + 5 + 1),不是 3。
编号规则:X/Y 是八进制
X0-X7、X10-X17、X20-X27…… 到 X377,中间没有 X8、X9。 Y 同理。写成 LD X8 不是运行出错,而是编译时就报:
步号0(第1行): X 编号必须是八进制(0-7的组合): X8M/S/T/C/D 是十进制编号,不受这条影响。各软元件的地址上限见 软元件一览。