sub
Subtract
Subtracts a register, memory byte or immediate value from A.
Used in
- Registers, pairs and the shadow setZ80 assembly
- 8-bit and 16-bit arithmetic, logic and bitsZ80 assembly
- Arrays, strings and ixZ80 assembly
- The bigger of two numbersZ80 assembly
- Multiply and divide, with the remainderZ80 assembly
- A subroutine with its arguments in registersZ80 assembly
- Recursion: factorial and FibonacciZ80 assembly
- A jump tableZ80 assembly
- Print a number in any base without helpZ80 assembly
- The snake gameZ80 assembly
SZHP/VNC ●●●●1●
- ● set from the result
- 1 always 1
Forms
-
Subtracts
rfrom A. sub1 byte · 7 cyclesSubtracts (HL) from A.
sub2 bytes · 7 cyclesSubtracts
nnfrom A.-
Subtracts the value pointed to by IX plus
ddfrom A.
Pseudo-instructions
Other spellings the assembler accepts; each form shows the instruction it becomes.
-
Subtracts
rfrom A. -
Subtracts (HL) from A.
-
Subtracts
nnfrom A. -
Subtracts the value pointed to by IX plus
ddfrom A.
Undocumented 1 row
Left out of Zilog's manual, but the Z80 runs them, and so does this emulator.
-
Subtracts
ixh/lfrom A.
Pseudo-instructions · Undocumented 1 row
Other spellings the assembler accepts; each form shows the instruction it becomes. Left out of Zilog's manual, but the Z80 runs them, and so does this emulator.
-
Subtracts
ixh/lfrom A.
Operands
r- An 8-bit register:
a,b,c,d,e,horl. (hl)- The byte in memory at the address stored in
hl. More nn- An 8-bit immediate value,
0to255or-128to127, written as a number, character constant or symbol. 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 ixh/l- The high or low byte of
ix:ixhorixl. Foriy, useiyhoriyl. More
.org 0x8000
ld a, 5
ld b, 3
sub b
halt