LDA 命令 (Load Accumulator from Memory)
アキュムレータに対し8ビットないし16ビットの値をロードします。

LDAオーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
A9
LDA #const
Imm.
2/ 3
2
1, 4
A5
LDA dp
DP.
2
3
1, 2
B2
LDA (dp)
DP. Ind
2
5
1, 2
A7
LDA [dp]
DP. Ind long
2
6
1, 2
B5
LDA dp, X
DP. Idx X
2
4
1, 2
A1
LDA (dp, X)
DP. Idx Ind X
2
6
1, 2
B1
LDA (dp), Y
DP. Ind Idx Y
2
5
1, 2, 3
B7
LDA [dp], Y
DP. Ind long Idx Y
2
6
1, 2
AD
LDA abs
Abs.
3
4
1
BD
LDA abs, X
Abs. Idx X
3
4
1, 3
B9
LDA abs, Y
Abs. Idx Y
3
4
1, 3
AF
LDA long
Abs. Iong
4
5
1
BF
LDA long, X
Abs. long Idx X
4
5
1
A3
LDA sp, S
SR.
2
4
1
B3
LDA (sp, S), Y
SR. Ind Idx Y
2
7
1


1. メモリモードフラグクリア時は1サイクル追加
2. ダイレクトページの開始アドレスがページ境界になっていない場合1サイクル追加
3. インデクス加算時にページ境界を超える場合は1サイクル追加
4. メモリモードフラグクリア時は3バイト。メモリモードフラグセット時は2バイト。
 
フラグ変化
n-----z-

n: 読込んだ値のMSBが格納される。
z: 読込んだ値が0の場合にセットされ、それ以外の場合はクリアされる。
解説
LDA命令はオペコードによって指定されたアドレッシングモードに従ってアキュムレータに値をロードします。
ステータスレジスタのメモリモードフラグがクリアされている場合は16ビット長のデータをロードし、メモリモードフラグがセットされている場合は8ビット長のデータをロードします。
データの読込はリトル・エンディアン方式で行われます。すなわち、バイナリコードでは常に下位バイトが先に配置されます。

参照