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

DEC: Difference between revisions

From SnesLab
Jump to: navigation, search
(→‎External Links: hid archive URL for Leventhal)
(→‎Cycle Penalties: deindented)
Line 72: Line 72:
If you need to subtract two or more from the [[accumulator]], consider [[SBC]] instead.
If you need to subtract two or more from the [[accumulator]], consider [[SBC]] instead.


===== Cycle Penalties =====
==== Cycle Penalties ====
* Except in [[accumulator addressing]], DEC takes two extra cycles when the accumulator is 16 bits wide.
* Except in [[accumulator addressing]], DEC takes two extra cycles when the accumulator is 16 bits wide.
* In [[direct page addressing]] modes, DEC takes an extra cycle when the low byte of the [[direct page register]] is nonzero
* In [[direct page addressing]] modes, DEC takes an extra cycle when the low byte of the [[direct page register]] is nonzero

Revision as of 17:51, 23 August 2024

Basic Info
Addressing Mode Opcode Length Speed
Accumulator 3A 1 byte 2 cycles
Absolute CE 3 bytes 6 cycles*
Direct Page C6 2 bytes 5 cycles*
Absolute Indexed by X DE 3 bytes 7 cycles*
Direct Page Indexed by X D6 2 bytes 6 cycles*
Flags Affected
N V M X D I Z C
N . . . . . Z .

DEC (Decrement) is a 65x instruction that decrements the value in the location specified by the operand by one. The size of the accumulator determines whether this is an 8 or 16 bit operation. An alternate mnemonic when the operand is the accumulator is "DEA."

DEC ignores the decimal mode flag and the carry flag.

Syntax

DEC
DEC A
DEA
DEC addr
DEC dp
DEC addr, X
DEC dp, X

If you need to subtract two or more from the accumulator, consider SBC instead.

Cycle Penalties

See Also

External Links