メモ
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| - | | ! | |
| 命令 | 書式 | コメント |
| LDC | LDC Reg ConstantTableIndex | ConstantTableの値を指定レジスタにロード |
| LDR | LDR Reg1 Reg2 | Reg2の値をReg1にロード |
| LDBP | LDBP Reg1 BasePointerOffset(S16) | BasePointerから相対アドレス分移動したアドレスをReg1にロード |
| LDFR | LDFR Reg | 関数戻り値レジスタの値を指定のレジスタにロード |
| LDFARC | LDFR FAReg ConstantTableIndex | ConstantTableの値を指定関数引数レジスタにロード |
| LDFARR | LDFR FAReg Reg | 指定のレジスタの値を指定の関数引数レジスタにロード |
| LDPTR | LDPTR Reg1 Reg2 | Reg2の値をアドレスとみなし,Reg2が指す値を取得する |
| LDHDL | LDHDL Reg1 Reg2 | Reg2の値をオブジェクトハンドルとみなし,Reg2が指すオブジェクトハンドルのアドレスを取得する |
| CPFAR | CPFAR RegisterCount | 関数引数レジスタの値を指定した数レジスタにコピー |
| ADDxxx | ADDI32 Reg1 Reg2 Reg3 | Reg1 = Reg2 + Reg3 |
| SUBxxx | SUBI32 Reg1 Reg2 Reg3 | Reg1 = Reg2 - Reg3 |
| MULxxx | MULS32 Reg1 Reg2 Reg3 | Reg1 = Reg2 * Reg3 |
| DIVxxx | MULS32 Reg1 Reg2 Reg3 | Reg1 = Reg2 / Reg3 |
| MODxxx | MODS32 Reg1 Reg2 Reg3 | Reg1 = Reg2 % Reg3 |
| PUSHREG | PUSHREG PushRegisterCount | |
| POPREG | POPREG PopRegisterCount | |
| PUSH | PUSH PushStackSize | |
| POP | POP PopStackSize | |
| CALL | CALL SymbolTableIndex | |
| STFR | STFR | R00の値を関数戻り値レジスタに設定する |
| RET | RET |
構文解析が終わった後,コード生成より前にやること。