We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Immediate Addressing: Difference between revisions
From SnesLab
(#) |
(→References: fixed link number) |
||
(54 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''Immediate Addressing''' is when the data to be operated on directly follows the opcode in the instruction steam. The immediate data is generally preceded by a # in the assembler source. | '''Immediate Addressing''' is when the data to be operated on directly follows the opcode in the instruction steam. The immediate data is generally preceded by a # in the assembler source.<sup>[7]</sup> | ||
Supported by the following [[65c816]] instructions: | |||
* [[ADC]] (opcode 69) | |||
* [[SBC]] (opcode E9) | |||
* [[EOR]] (opcode 49) | |||
* [[AND]] (opcode 29) | |||
* [[ORA]] (opcode 09) | |||
* [[LDA]] (opcode A9) | |||
* [[LDX]] (opcode A2) | |||
* [[LDY]] (opcode A0) | |||
* [[CMP]] (opcode C9) | |||
* [[CPX]] (opcode E0) | |||
* [[CPY]] (opcode C0) | |||
* [[BIT]] (opcode 89) | |||
* [[SEP]] (opcode E2) | |||
* [[REP]] (opcode C2) | |||
They are all either 2 or 3 bytes long. | |||
The [[Super FX]] supports immediate addressing too:</sup> | |||
* [[ADC (Super FX)|ADC]] | |||
* [[ADD (Super FX)|ADD]] | |||
* [[AND (Super FX)|AND]] | |||
* [[BIC]] | |||
* [[SUB]] | |||
* [[OR]] | |||
* [[MULT]] | |||
* [[IWT]] | |||
* [[IBT]] | |||
* [[LINK]] | |||
* and presumably [[UMULT]] too | |||
On the [[SPC700]], "imm" means "8-bit immediate data."<sup>[4]</sup> These commands support immediate data: | |||
* [[MOV (SPC700)|MOV]] (Group 1) | |||
* [[ADC (SPC700)|ADC]] | |||
* [[SBC (SPC700)|SBC]] | |||
* [[CMP (SPC700)|CMP]] | |||
* [[AND (SPC700)|AND]] | |||
* [[OR (SPC700)|OR]] | |||
* [[EOR (SPC700)|EOR]] | |||
==== Syntax ==== | |||
<pre> | |||
LDA #const | |||
</pre> | |||
=== See Also === | |||
* [[Implied Addressing]] | |||
* [[Accumulator Addressing]] | |||
* [[PEA]] | |||
=== References === | |||
# [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/397 page 397] | |||
# lbid, [https://archive.org/details/0893037893ProgrammingThe65816/page/108 page 108] | |||
# [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n219 page 209] | |||
# [https://archive.org/details/SNESDevManual/book1/page/n226 Appendix C-1 of Book I] of the official Super Nintendo development manual | |||
# section 3.5.18 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf | |||
# Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#5.14 | |||
# [https://archive.org/details/mos_microcomputers_programming_manual/page/n203 B-2] | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:Addressing Modes]] | [[Category:Addressing Modes]] | ||
[[Category:Simple Admodes]] | |||
[[Category:Inherited from 6502]] |
Latest revision as of 03:20, 9 August 2024
Immediate Addressing is when the data to be operated on directly follows the opcode in the instruction steam. The immediate data is generally preceded by a # in the assembler source.[7]
Supported by the following 65c816 instructions:
- ADC (opcode 69)
- SBC (opcode E9)
- EOR (opcode 49)
- AND (opcode 29)
- ORA (opcode 09)
- LDA (opcode A9)
- LDX (opcode A2)
- LDY (opcode A0)
- CMP (opcode C9)
- CPX (opcode E0)
- CPY (opcode C0)
- BIT (opcode 89)
- SEP (opcode E2)
- REP (opcode C2)
They are all either 2 or 3 bytes long.
The Super FX supports immediate addressing too:
On the SPC700, "imm" means "8-bit immediate data."[4] These commands support immediate data:
Syntax
LDA #const
See Also
References
- Eyes & Lichty, page 397
- lbid, page 108
- Labiak, page 209
- Appendix C-1 of Book I of the official Super Nintendo development manual
- section 3.5.18 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf
- Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#5.14
- B-2