We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
LDA: Difference between revisions
From SnesLab
(dp alignment penalty) |
(adding index penalty) |
||
Line 105: | Line 105: | ||
|} | |} | ||
'''LDA''' (Load Accumulator) is a 65x instruction that loads the accumulator. In all [[addressing modes]], LDA takes one extra cycle when the accumulator is 16 bits wide. In [[direct page addressing]] modes, LDA takes another extra cycle if the low byte of the [[direct page register]] is nonzero. | '''LDA''' (Load Accumulator) is a 65x instruction that loads the accumulator. In all [[addressing modes]], LDA takes one extra cycle when the accumulator is 16 bits wide. In [[direct page addressing]] modes, LDA takes another extra cycle if the low byte of the [[direct page register]] is nonzero. In both the [[Absolute Indexed]] and the DP Indirect Indexed by Y admodes, LDA takes an extra cycle if adding the index crosses a page boundary. | ||
=== See Also === | === See Also === |
Revision as of 01:12, 20 November 2023
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
immediate | A9 | 2 bytes | 2 cycles* | ||||
absolute | AD | 3 bytes | 4 cycles* | ||||
absolute long | AF | 4 bytes | 5 cycles* | ||||
direct page | A5 | 2 bytes | 3 cycles* | ||||
direct page indirect | B2 | 2 bytes | 5 cycles* | ||||
direct page indirect long | A7 | 2 bytes | 6 cycles* | ||||
absolute indexed by X | BD | 3 bytes | 4 cycles* | ||||
absolute long indexed by X | BF | 4 bytes | 5 cycles* | ||||
absolute indexed by Y | B9 | 3 bytes | 4 cycles* | ||||
direct page indexed by X | B5 | 2 bytes | 4 cycles* | ||||
direct page indexed indirect by X | A1 | 2 bytes | 6 cycles* | ||||
direct page indirect indexed by Y | B1 | 2 bytes | 5 cycles* | ||||
direct page indirect long indexed by Y | B7 | 2 bytes | 6 cycles* | ||||
stack relative | A3 | 2 bytes | 4 cycles* | ||||
stack relative indirect indexed by Y | B3 | 2 bytes | 7 cycles* |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
N | V | M | X | D | I | Z | C | |
. | . | . | . | . | . |
LDA (Load Accumulator) is a 65x instruction that loads the accumulator. In all addressing modes, LDA takes one extra cycle when the accumulator is 16 bits wide. In direct page addressing modes, LDA takes another extra cycle if the low byte of the direct page register is nonzero. In both the Absolute Indexed and the DP Indirect Indexed by Y admodes, LDA takes an extra cycle if adding the index crosses a page boundary.
See Also
External Links
- Eyes & Lichty page on LDA: https://archive.org/details/0893037893ProgrammingThe65816/page/n488
- Labiak page on LDA: https://archive.org/details/Programming_the_65816/page/n159
- MCS6500 Manual page on LDA: https://archive.org/details/mos_microcomputers_programming_manual/page/n19
- Carr page on LDA: https://archive.org/details/6502UsersManual/page/n276
- Leventhal page on LDA: https://archive.org/details/6502-assembly-language-programming/page/n120
- snes9x implementation of LDA: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L678
- undisbeliever on LDA: https://undisbeliever.net/snesdev/65816-opcodes.html#lda-load-accumulator-from-memory