dec
Decrement
Subtracts one from a register, register pair or the byte at (HL), leaving C unchanged.
Used in
- Registers, pairs and the shadow setZ80 assembly
- Loops and djnzZ80 assembly
- The screen, keyboard and mouse through portsZ80 assembly
- Reverse a string in placeZ80 assembly
- Stack arguments and a stack frameZ80 assembly
- Recursion: factorial and FibonacciZ80 assembly
- Bubble sortZ80 assembly
- Print a number in any base without helpZ80 assembly
- The snake gameZ80 assembly
SZHP/VNC ●●●●1–
- ● set from the result
- 1 always 1
- – not changed
The rows that do otherwise show their own flags.
Forms
-
Subtracts one from
r. dec1 byte · 11 cyclesSubtracts one from (HL).
-
Subtracts one from the memory location pointed to by IX plus
dd. -
Subtracts one from
rr. -
Subtracts one from IX.
Undocumented 1 row
Left out of Zilog's manual, but the Z80 runs them, and so does this emulator.
-
Subtracts one from
ixh/l.
Operands
r- An 8-bit register:
a,b,c,d,e,horl. (hl)- The byte in memory at the address stored in
hl. More (ix+dd)- The byte in memory at
ix + dd, whereddis a signed displacement from-128to127, for example(ix+5)or(ix-3).(iy+dd)works the same way. More rr- A register pair:
bc,de,hlorsp. ix- The
ixindex register. You can also useiy, with the same instruction size and timing. More ixh/l- The high or low byte of
ix:ixhorixl. Foriy, useiyhoriyl. More
.org 0x8000
ld b, 3
dec b
halt