We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
POP (SPC700): Difference between revisions
From SnesLab
(Stack pointer incremented) |
(sp incremented before) |
||
Line 69: | Line 69: | ||
* the [[program status word]] | * the [[program status word]] | ||
The [[stack pointer]] is incremented by one. | The [[stack pointer]] is incremented by one before the value is pulled. | ||
When the [[program status word]] is the operand, all the flags are naturally affected as that is the register they live in. Otherwise, no flags are affected. | When the [[program status word]] is the operand, all the flags are naturally affected as that is the register they live in. Otherwise, no flags are affected. |
Latest revision as of 03:52, 9 August 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Accumulator | AE | 1 byte | 4 cycles | ||||
Stack - X | CE | 1 byte | 4 cycles | ||||
Stack - Y | EE | 1 byte | 4 cycles | ||||
Stack - PSW | 8E | 1 byte | 4 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
Operand is the PSW? | N | V | P | B | H | I | Z | C |
yes | N | V | P | B | H | I | Z | C |
no | . | . | . | . | . | . | . | . |
POP is an SPC700 command that pops a byte from the stack, pulling it into a register. The target register can be:
- the accumulator
- the X Index Register
- the Y Index Register
- the program status word
The stack pointer is incremented by one before the value is pulled.
When the program status word is the operand, all the flags are naturally affected as that is the register they live in. Otherwise, no flags are affected.
Syntax
POP A POP X POP Y POP PSW
See Also
References
- Table C-17 in Appendix C-9 of Book I of the official Super Nintendo development manual
- anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L536