0とか123とか56789999とか、定数をレジスタに代入(ロード = Load)します。対象となるレジスタはアキュムレータ(A)のみです。定数の長さによって命令を使い分けます。
Operation | Mnemonic | inCode | Opr2 | Opr3 | Opr4 | Opr5 | #bytes | Opcode | Ie | Cy | Cd |
---|---|---|---|---|---|---|---|---|---|---|---|
A <- Val(1d) | LDI.d | Val | 1 | 2v | |||||||
A <- Val(2d) | LDI.b | Val | 2 | 30 vv | |||||||
A <- Val(4d) | LDI.w | Val | Val | 3 | 31 vv vv | ||||||
A <- Val(8d) | LDI.q | Val | Val | Val | Val | 5 | 32 vv vv vv vv |
Opcode欄の「v」にあたるところに任意の10進1桁を入れてください。
コーディング例
Addr | Data | Label | Opcode | Operand | Comment | ||||
---|---|---|---|---|---|---|---|---|---|
0000 | 20 | start: | LDI.d | 0 | Aに0をロードする | ||||
0001 | 30 | 12 | LDI.b | 12 | Aに12をロードする | ||||
0003 | 31 | 03 | 45 | LDI.w | 345 | Aに345をロードする | |||
0006 | 32 | 00 | 66 | 77 | 88 | LDI.q | 667788 | Aに667788をロードする |
補足
- “LDI”は”Load Immediate”(ロード・イミディエイト)の略です。”immediate”は日本語で「即値」と訳されますが、オペコードの「すぐ後ろにある値」という意味で使っています。
- DeMas(DeMアセンブラ)を使えばデータ長指定記号を省いて記述することができます。
- この命令はステータスレジスタ(SR)を変化させません。