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