TRB - Test & Reset memory against Accumulator
TRB logically AND's the complement of the accumulator with the data at an address and stores the result in that address.
This has the effect of clearing each memory bit which is set in the accumulator, leaving the other bits unchanged.
The z flag is set based on a different operation. It's set if the memory location once set logically AND the accumulator (not it's compliment) is zero.
For 8-bit processors or when m=1, the values in the accumulator & memory are 8-bit.
For 16-bit processors, when m=0, the values in the accumulator & memory are 16-bit.
TSB - Test & Set memory against Accumulator
TSB is identical to TRB except it sets the bits defined in the Accumulator not reset them.
Flags Affected
Flags |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
z | Set if logical AND of memory & accumulator is zero, otherwise clear |
Instructions
Syntax | Opcode | Available on: | # of | # of | Addressing Mode | ||
---|---|---|---|---|---|---|---|
(hex) | 6502 | 65C02 | 65816 | bytes | cycles | ||
TRB addr | 1C | x | x | 3 | 61 | Absolute | |
TRB dp | 14 | x | x | 2 | 51, 2 | Direct Page | |
TSB addr | 0C | x | x | 3 | 61 | Absolute | |
TSB dp | 04 | x | x | 2 | 51, 2 | Direct Page |
Notes:
- 65816: Add 2 cycles if m=0 (16-bit memory/accumulator)
- 65816: Add 1 cycle if low byte of Direct Page register is not 0