Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Last revision Both sides next revision | ||
ff3:ff3us:doc:snes:opcode [2016/03/06 19:11] hatzen08 created |
ff3:ff3us:doc:snes:opcode [2022/09/20 16:28] strotlog cmp long,X is length 4 (checked other references) |
||
---|---|---|---|
Line 68: | Line 68: | ||
The STZ opcode will always store the value of zero in the designed memory address. Unlike the STA, STX and STY opcodes, the STZ opcode doesn' | The STZ opcode will always store the value of zero in the designed memory address. Unlike the STA, STX and STY opcodes, the STZ opcode doesn' | ||
- | ^ Opcode | + | ^ Opcode |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | ^ Opcode | + | ^ Opcode |
- | | 86 |STX dp | + | | 86 |STX dp |
- | | 8E |STX addr | + | | 8E |STX addr |
- | | 96 |STX dp,Y | + | | 96 |STX dp,Y |
- | ^ Opcode | + | ^ Opcode |
- | | 84 |STY dp | + | | 84 |STY dp |
- | | 8C |STY addr | + | | 8C |STY addr |
- | | 94 |STY dp,X | + | | 94 |STY dp,X |
- | ^ Opcode | + | ^ Opcode |
- | | 64 |STZ dp | + | | 64 |STZ dp |
- | | 74 |STZ dp,X | + | | 74 |STZ dp,X |
- | | 9C |STZ addr | + | | 9C |STZ addr |
- | | 9E |STZ addr, | + | | 9E |STZ addr, |
===== TRB, TSB ===== | ===== TRB, TSB ===== | ||
Line 104: | Line 104: | ||
Test all bits in the A or C register. For all bits set in the A or C register, the correspondent bits will be set or unset in the designed memory address. TSB will set the correspondent bits and TRB will reset the correspondent bits. All clear bits in the A or C register will be ignored and their correspondent bits in the designed address will not be altered. | Test all bits in the A or C register. For all bits set in the A or C register, the correspondent bits will be set or unset in the designed memory address. TSB will set the correspondent bits and TRB will reset the correspondent bits. All clear bits in the A or C register will be ignored and their correspondent bits in the designed address will not be altered. | ||
- | ^ Opcode | + | ^ Opcode |
- | | 14 |TRB dp | + | | 14 |TRB dp |
- | | 1C |TRB addr | + | | 1C |TRB addr |
- | ^ Opcode | + | ^ Opcode |
- | | 04 |TSB dp | + | | 04 |TSB dp |
- | | 0C |TSB addr | + | | 0C |TSB addr |
===== ADC, SBC ===== | ===== ADC, SBC ===== | ||
Line 116: | Line 116: | ||
Add or subtract the value in the A or C register with the value in the designed memory address. ADC will add the value and SBC will subtract the value. | Add or subtract the value in the A or C register with the value in the designed memory address. ADC will add the value and SBC will subtract the value. | ||
- | When the carry flag is set, a value of one will be added in the addition or subtraction operation. | + | When the carry flag is unset, a value of one will be added in the addition or subtraction operation. |
The operation can overflow or underflow. It is the coder responsibility to check these cases and adjust the resulting value. A common method is to check the carry flag for overflow or underflow and cap the value to a prefixed setting. | The operation can overflow or underflow. It is the coder responsibility to check these cases and adjust the resulting value. A common method is to check the carry flag for overflow or underflow and cap the value to a prefixed setting. | ||
Line 124: | Line 124: | ||
|v set if signed overflow? | |v set if signed overflow? | ||
|z set if result is zero | | |z set if result is zero | | ||
- | |c set if overflow or underflow | + | |c set if not overflow or underflow |
^ Opcode | ^ Opcode | ||
Line 251: | Line 251: | ||
===== BIT ===== | ===== BIT ===== | ||
- | Does a binary AND between the A or C register and the memory. Unlike the AND opcode, the binary AND operation | + | Does a binary AND between the A or C register and the memory. Unlike the AND opcode, the binary AND operation |
^flags | ^flags | ||
Line 289: | Line 289: | ||
| | | | ||
| | | | ||
- | | | + | | |
^ Opcode | ^ Opcode |