We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

DAS (SPC700)

From SnesLab
Revision as of 08:46, 19 September 2024 by Xetheria (talk | contribs) (perhaps not completely)
Jump to: navigation, search
Basic Info
Addressing Mode Opcode Length Speed
Accumulator BE 1 byte 3 cycles
Flags Affected
N V P B H I Z C
N . . . . . Z C

DAS (Decimal Adjust for Subtraction) is an SPC700 instruction that corrects a BCD difference:

  1. If either the carry flag is clear or the accumulator exceeds 0x99, subtract 0x60 from the accumulator and clear the carry flag. This corrects the tens column (but perhaps not completely).
  2. Then, if either the half-carry flag is clear or the low nibble of the accumulator exceeds 0x09, subtract 0x06 from the accumulator. This corrects the ones column and possibly decrements the tens column by one.

Before DAS, the value in the accumulator is assumed to be encoded in binary/hexadecimal because that is what the SBC command outputs. Afterwards, the value in the accumulator will be encoded in BCD. The SPC700 has no decimal mode, so that is why this command is important when working with decimal data.

Syntax

DAS
DAS A

See Also

External Links