| Load Accumulator With Memory |
|
|
LDA (Load Accumulator With Memory) loads the accumulator with specified memory. It is probably the most-used opcode in 6502 assembly as it loads the most-used register. It is similar in function to LDX and LDY.
Operation
This pseudo C code shows how the LDA opcode functions when it is executed.
SET_NEGATIVE(Operand); // Clears the Negative Flag if the Operand is $#00-7F, otherwise sets it.
SET_ZERO(Operand); // Sets the Zero Flag if the Operand is $#00, otherwise clears it.
ACCUMULATOR = Operand; // Stores the Operand in the Accumulator Register.
Addressing Modes
| Addressing Mode
|
Assembly Language Form
|
Opcode
|
# Bytes
|
# Cycles
|
| Immediate
|
LDA #Operand
|
A9
|
2
|
2
|
| Zero Page
|
LDA Operand
|
A5
|
2
|
3
|
| Zero Page, X
|
LDA Operand, X
|
B5
|
2
|
4
|
| Absolute
|
LDA Operand
|
AD
|
3
|
4
|
| Absolute, X
|
LDA Operand, X
|
BD
|
3
|
4*
|
| Absolute, Y
|
LDA Operand, Y
|
B9
|
3
|
4*
|
| (Indirect, X)
|
LDA (Operand, X)
|
A1
|
2
|
6
|
| (Indirect), Y
|
LDA (Operand), Y
|
B1
|
2
|
5*
|
| * Add 1 if page boundary is crossed.
|
Examples