We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

PEA: Difference between revisions

From SnesLab
Jump to: navigation, search
(added syntax)
(push category)
 
(11 intermediate revisions by the same user not shown)
Line 37: Line 37:
'''PEA''' (Push Effective Address) is a [[65c816]] instruction that pushes a 16-bit value to the [[stack]].  This value need not actually be an address.  The [[stack pointer]] is decremented by two.
'''PEA''' (Push Effective Address) is a [[65c816]] instruction that pushes a 16-bit value to the [[stack]].  This value need not actually be an address.  The [[stack pointer]] is decremented by two.


PEA can be thought of as using [[immediate addressing]], although the immediate syntax is not used.
PEA ignores the state of the m and x flags.
No flags are affected.
No flags are affected.


Line 42: Line 45:
<pre>
<pre>
PEA addr
PEA addr
PEA const
</pre>
</pre>
PEA works even in [[emulation mode]].


=== See Also ===
=== See Also ===
* [[PER]]
* [[PER]]
* [[PEI]]
* [[PEI]]
* [[PHA]]
* [[TSC]]
* [[XBA]]


=== External Links ===
=== External Links ===
* [[Eyes & Lichty]] page 473, on PEA: https://archive.org/details/0893037893ProgrammingThe65816/page/n499
* [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/473 page 473] on PEA
* [[Labiak]] page 157 on PEA: https://archive.org/details/Programming_the_65816/page/n167
* [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n167 page 157] on PEA
* snes9x implementation of PEA: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1631
* snes9x implementation of PEA: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1631
* undisbeliever on PEA: https://undisbeliever.net/snesdev/65816-opcodes.html#pea-push-effective-absolute-address
* undisbeliever on PEA: https://undisbeliever.net/snesdev/65816-opcodes.html#pea-push-effective-absolute-address
* Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#6.8.1
* https://wilsonminesco.com/816myths/65c816_myths-2_BDD.pdf


[[Category:ASM]]
[[Category:ASM]]
[[Category:65c816 additions]]
[[Category:65c816 additions]]
[[Category:Push Instructions]]
[[Category:Three-byte Instructions]]
[[Category:Three-byte Instructions]]
[[Category:Five-cycle Instructions]]
[[Category:Five-cycle Instructions]]

Latest revision as of 22:58, 12 August 2024

Basic Info
Addressing Mode Opcode Length Speed
Stack (absolute) F4 3 bytes 5 cycles
Flags Affected
N V M X D I Z C
. . . . . . . .

PEA (Push Effective Address) is a 65c816 instruction that pushes a 16-bit value to the stack. This value need not actually be an address. The stack pointer is decremented by two.

PEA can be thought of as using immediate addressing, although the immediate syntax is not used.

PEA ignores the state of the m and x flags. No flags are affected.

Syntax

PEA addr
PEA const

PEA works even in emulation mode.

See Also

External Links