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
(linkify absolute)
(→‎See Also: DEC (Super FX))
 
(10 intermediate revisions by the same user not shown)
Line 7: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|accumulator
|[[Accumulator Addressing|Accumulator]]
|3A
|3A
|1 byte
|1 byte
Line 17: Line 17:
|6 cycles*
|6 cycles*
|+
|+
|direct page
|[[Direct Page Addressing | Direct Page]]
|C6
|C6
|2 bytes
|2 bytes
Line 36: Line 36:
!colspan="9"|Flags Affected
!colspan="9"|Flags Affected
|+
|+
|N
|[[Negative Flag|N]]
|V
|[[Overflow Flag|V]]
|M
|[[M Flag|M]]
|X
|[[X Flag|X]]
|D
|[[Decimal Flag|D]]
|I
|[[I Flag|I]]
|Z
|[[Zero Flag|Z]]
|C
|[[Carry Flag|C]]
|+
|+
|
|
Line 55: Line 55:
|}
|}


'''DEC''' (Decrement) is a 65x instruction that decrements the value in the location specified by the operand.
'''DEC''' (Decrement) is a 65x instruction that decrements the value in the location specified by the operand.  The size of the [[accumulator]] determines whether this is an 8 or 16 bit operation.
 
DEC ignores the [[decimal mode flag]].


===== Cycle Penalties =====
===== Cycle Penalties =====
Line 65: Line 67:
* [[DEX]]
* [[DEX]]
* [[DEY]]
* [[DEY]]
* [[DEC (Super FX)]]


=== External Links ===
=== External Links ===
* [[Eyes & Lichty]] page on DEC: https://archive.org/details/0893037893ProgrammingThe65816/page/n477
* [[Eyes & Lichty]] page 451 on DEC: https://archive.org/details/0893037893ProgrammingThe65816/page/n477
* [[Labiak]] page on DEC: https://archive.org/details/Programming_the_65816/page/n148
* [[Labiak]] page 138 on DEC: https://archive.org/details/Programming_the_65816/page/n148
* [[MCS6500 Manual]] page on DEC: https://archive.org/details/mos_microcomputers_programming_manual/page/n176
* [[MCS6500 Manual]] page 155 on DEC: https://archive.org/details/mos_microcomputers_programming_manual/page/n176
* [[Carr]] page on DEC: https://archive.org/details/6502UsersManual/page/n270
* [[Carr]] page 257 on DEC: https://archive.org/details/6502UsersManual/page/n270
* [[Leventhal]] page on DEC: https://archive.org/details/6502-assembly-language-programming/page/n109
* [[Leventhal]] page 3-60 on DEC: https://archive.org/details/6502-assembly-language-programming/page/n109
* snes9x implementation of DEC: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L482
* snes9x implementation of DEC: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L482
* undisbeliever on DEC: https://undisbeliever.net/snesdev/65816-opcodes.html#dec-decrement
* undisbeliever on DEC: https://undisbeliever.net/snesdev/65816-opcodes.html#dec-decrement

Latest revision as of 01:47, 19 December 2023

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 X DE 3 bytes 7 cycles*
direct page indexed X D6 2 bytes 6 cycles*
Flags Affected
N V M X D I Z C
. . . . . .

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

DEC ignores the decimal mode flag.

Cycle Penalties

See Also

External Links