We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Processor Status Register: Difference between revisions
From SnesLab
(fullsnes caveat) |
(side effect) |
||
Line 23: | Line 23: | ||
* [[CLV]] | * [[CLV]] | ||
The only transfer instructions that do not modify these flags are [[TCS]] and [[TXS]]. | Several other instructions affect the flags as a side effect. The only transfer instructions that do not modify these flags are [[TCS]] and [[TXS]]. | ||
These instructions do not modify any status flags: | These instructions do not modify any status flags: |
Revision as of 04:29, 23 July 2024
The Processor Status Register (P) is on the 65c816 and contains several flags:
- Negative Flag - N
- Overflow Flag - V
- Memory/Accumulator Select - M
- Index Register Select - X
- Decimal Mode - D
- Interrupt Disable Flag - I
- Zero Flag - Z
- Carry Flag - C
It can be pulled from the stack via PLP and RTI.
There are nine instructions that directly modify these flags, including:[3]
Several other instructions affect the flags as a side effect. The only transfer instructions that do not modify these flags are TCS and TXS.
These instructions do not modify any status flags:
- BCC
- BCS
- BEQ
- BMI
- BNE
- BPL
- BRA
- BRL
- BVC
- BVS
- JMP
- JSL
- JSR
- MVN
- MVP
- NOP
- PEA
- PEI
- PER
- PHA
- PHB
- PHD
- PHK
- PHP (fullsnes claims the break flag is set)
- PHX
- PHY
- RTL
- RTS
- STA
- STP
- STX
- STY
- STZ
- TCS
- TXS
- WAI
- WDM
See Also
References
- Table 18.2 Eyes & Lichty, page 422: https://archive.org/details/0893037893ProgrammingThe65816/page/422
- Figure 17.3, Lbid, page 377: https://archive.org/details/0893037893ProgrammingThe65816/page/377
- page 262, https://archive.org/details/0893037893ProgrammingThe65816/page/262