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
Jump to: navigation, search
(created page)
 
(→‎References: fixed link number)
 
(55 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.
'''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

  1. Eyes & Lichty, page 397
  2. lbid, page 108
  3. Labiak, page 209
  4. Appendix C-1 of Book I of the official Super Nintendo development manual
  5. section 3.5.18 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf
  6. Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#5.14
  7. B-2