We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Stack: Difference between revisions
From SnesLab
(buffers category) |
(more push/pull instructions) |
||
Line 14: | Line 14: | ||
* [[PHX]] | * [[PHX]] | ||
* [[PHY]] | * [[PHY]] | ||
* [[JSR]] | |||
* [[JSL]] | |||
PL* instructions take one cycle more than their PH* counterparts. These instructions pull things from the stack: | |||
* [[PLA]] | * [[PLA]] | ||
Line 23: | Line 25: | ||
* [[PLX]] | * [[PLX]] | ||
* [[PLY]] | * [[PLY]] | ||
* [[RTS]] | |||
* [[RTL]] | |||
* [[RTI]] | |||
Note the lack of [[PLK]]. PHS and PLS similarly do not exist. | Note the lack of [[PLK]]. PHS and PLS similarly do not exist. |
Revision as of 02:19, 11 August 2024
The Stack is a buffer which remembers the state of subroutines that are currently executing.
On the 65c816, the stack is always in bank zero.[3] It can be thousands of bytes deep.[1]
In emulation mode it wraps within page one.[2]
The stack grows towards zero, but the most recently pushed byte is nontheless called the top of the stack. These instructions push things to the stack:
PL* instructions take one cycle more than their PH* counterparts. These instructions pull things from the stack:
Note the lack of PLK. PHS and PLS similarly do not exist.
See Also
References
- Wilson, Garth. https://wilsonminesco.com/816myths
- Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#5.1.1
- section 2.11 of 65c816 datasheet: https://www.westerndesigncenter.com/wdc/documentation/w65c816s.pdf