This table describes how each of the P register's flags change when different instructions are run. An empty cell denotes that the flag is unchanged. Effects are lifted from undisbelievers' 65816 opcode page.

*UNDER CONSTRUCTION (may have mistakes)*

Logic & Arithmetic

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

ADC |
Most significant bit of sum | Signed overflow of sum | Set if sum is zero | Carry from ALU (bit 8/16 of result) | ||||||

SBC |
Most significant bit of difference | Signed overflow of difference | Set if difference is zero | Carry from ALU (bit 8/16 of result) (set if borrow not required) | ||||||

AND |
Most significant bit of conjunction | Set if conjunction is zero | ||||||||

ORA |
Most signifciant bit of disjunction | Set if disjunction is zero | ||||||||

EOR |
Most significant bit of exclusive disjunction | Set if exclusive disjunction is zero | ||||||||

ASL |
Most significant bit of result | Set if the result is zero | Most significant bit of original Memory | |||||||

LSR |
cleared | Set if the result is zero | Bit 0 of original memory | |||||||

BIT (not immediate) |
most significant bit of memory | Second most significant bit of memory | Set if logical AND of memory and Accumulator is zero | |||||||

BIT (immediate) |
Set if logical AND of memory and Accumulator is zero |

Clear Status Flags

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

CLC |
0 | |||||||||

CLD |
0 | |||||||||

CLI |
0 | |||||||||

CLV |
0 |

Comparison

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

CMP |
Most significant bit of result | Set if the result is zero (Set if A == M) | Carry from ALU (Set if A >= M) | |||||||

CPX |
Most significant bit of result | Set if the result is zero (Set if X == M) | Carry from ALU (Set if X >= M) | |||||||

CPY |
Most significant bit of result | Set if the result is zero (Set if Y == M) | Carry from ALU (Set if Y >= M) |

Increment/Decrement

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

DEC |
Most significant bit of Peano predecessor | Set if the result is zero | ||||||||

DEX |
Most significant bit of Peano predecessor | Set if the result is zero | ||||||||

DEY |
Most significant bit of Peano predecesor | Set if the result is zero | ||||||||

INC |
Most significant bit of Peano successor | Set if the result is zero | ||||||||

INX |
Most significant bit of Peano successor | Set if the result is zero | ||||||||

INY |
Most significant bit of Peano successor | Set if the result is zero |

Jumps

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

JMP |
||||||||||

JML |
||||||||||

JSR |
||||||||||

JSL |

Load

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

LDA |
Most significant bit of Accumulator | Set if the Accumulator is zero | ||||||||

LDX |
Most significant bit of X | Set if the X is zero | ||||||||

LDY |
Most significant bit of Y | Set if the Y is zero |

Block Move

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

MVN |
||||||||||

MVP |

Push to Stack

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

PEA |
||||||||||

PEI |
||||||||||

PER |
||||||||||

PHA |
||||||||||

PHB |
||||||||||

PHD |
||||||||||

PHK |
||||||||||

PHP |
||||||||||

PHX |
||||||||||

PHY |

Pull from Stack

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

PLA |
Most significant bit of register | set if the register is zero | ||||||||

PLB |
Most significant bit of register | set if the register is zero | ||||||||

PLD |
Most significant bit of register | set if the register is zero | ||||||||

PLP (native mode) |
pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | |||

PLP (emulation mode) |
pulled from stack | pulled from stack | 1 | 1 | pulled from stack | pulled from stack | pulled from stack | |||

PLX |
Most significant bit of register | set if the register is zero | ||||||||

PLY |
Most significant bit of register | set if the register is zero |

Set/Reset Status bits

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

REP (native mode) |
cleared when n bit of operand set | cleared when v bit of operand set | cleared when m bit of operand set | cleared when x bit of operand set | cleared when d bit of operand set | cleared when i bit of operand set | cleared when z bit of operand set | cleared when c bit of operand set | ||

REP (emulation mode) |
cleared when n bit of operand set | cleared when v bit of operand set | 1 | 1 | cleared when d bit of operand set | cleared when i bit of operand set | cleared when z bit of operand set | cleared when c bit of operand set | ||

SEP |
or'd with n bit of operand | or'd with v bit of operand | or'd with m bit of operand | or'd with x bit of operand | or'd with d bit of operand | or'd with i bit of operand | or'd with z bit of operand | or'd with c bit of operand |

Rotation

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

ROL |
Most significant bit of result | set if the result is zero | Most significant bit of original memory | |||||||

ROR |
Most significant bit of result | set if the result is zero | Most significant bit of original memory |

Return

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

RTI (native mode) |
pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | pulled from stack | ||

RTI (emulation mode) |
pulled from stack | pulled from stack | 1 | 1 | pulled from stack | pulled from stack | pulled from stack | pulled from stack | ||

RTS |
||||||||||

RTL |

Set Status Flags

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

SEC |
1 | |||||||||

SED |
1 | |||||||||

SEI |
1 |

Store

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

STA |
||||||||||

STX |
||||||||||

STY |
||||||||||

STZ |

Transfer Registers

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

TAX |
Most significant bit of register | Set if the register is zero | ||||||||

TAY |
Most significant bit of register | Set if the register is zero | ||||||||

TCD |
Most significant bit of register | Set if the register is zero | ||||||||

TDC |
Most significant bit of register | Set if the register is zero | ||||||||

TSC |
Most significant bit of register | Set if the register is zero | ||||||||

TSX |
Most significant bit of register | Set if the register is zero | ||||||||

TXA |
Most significant bit of register | Set if the register is zero | ||||||||

TXY |
Most significant bit of register | Set if the register is zero | ||||||||

TYA |
Most significant bit of register | Set if the register is zero | ||||||||

TYX |
Most significant bit of register | Set if the register is zero | ||||||||

TCS |
||||||||||

TXS |

Test and Set/Reset Memory Bits against Accumulator

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

TRB |
Set if logical AND of memory and Accumulator is zero | |||||||||

TSB |
Set if logical AND of memory and Accumulator is zero |

Exchange bits

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

XBA |
bit 7 of the new Accumulator (even in 16-bit mode) | Set if bits 0-7 of the new Accumulator are 0 (even in 16 bit mode) | ||||||||

XCE |
set if enabling native mode | set if enabling native mode | Previous E flag | Previous C flag |

Branches

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

BBC |
||||||||||

BCS |
||||||||||

BEQ |
||||||||||

BNE |
||||||||||

BMI |
||||||||||

BPL |
||||||||||

BVC |
||||||||||

BVS |
||||||||||

BRA |
||||||||||

BRL |

Misc

Mnemonic | N | V | M | X | D | I | Z | C | E | B |
---|---|---|---|---|---|---|---|---|---|---|

WAI |
||||||||||

WDM |
||||||||||

STP |
||||||||||

NOP |
||||||||||

BRK |
0 | 1 | ||||||||

COP |
0 | 1 |

*Written by jeffythedragonslayer*