home *** CD-ROM | disk | FTP | other *** search
- ; Z80 opcodes, numerical order, from Zilog manual, Zilog mnems.
- ; Prefixed follow 0ffh = rst 7
-
- ; NOTE 1
- ; Some assemblers accept "a," for these opcodes, notably SLR's Z80ASM.
-
- ; definitions for sll macro
- b equ 0
- c equ 1
- d equ 2
- e equ 3
- h equ 4
- l equ 5
- m equ 6
- a equ 7
-
- ; useless, but valid opcode. Most assemblers do not generate
- sll macro reg
- db 0cbh,030h+reg
- endm
- ;
- ind equ 5
- n equ 20h
- ;
- nop
- ld bc,nn
- ld (bc),a
- inc bc
- inc b
- dec b
- ld b,n
- rlca
- ex af,af'
- add hl,bc
- ld a,(bc)
- dec bc
- inc c
- dec c
- ld c,n
- rrca
- djnz dis
- ld de,nn
- ld (de),a
- inc de
- inc d
- dec d
- ld d,n
- rla
- jr dis
- add hl,de
- ld a,(de)
- dec de
- inc e
- dec e
- ld e,n
- rra
- jr nz,dis
- ld hl,nn
- ld (nn),hl
- inc hl
- inc h
- dis: dec h
- ld h,n
- daa
- jr z,dis
- add hl,hl
- ld hl,(nn)
- dec hl
- inc l
- dec l
- ld l,n
- cpl
- jr nc,dis
- ld sp,nn
- ld (nn),a
- inc sp
- inc (hl)
- dec (hl)
- ld (hl),n
- scf
- jr c,dis
- add hl,sp
- ld a,(nn)
- dec sp
- inc a
- dec a
- ld a,n
- ccf
- ld b,b
- ld b,c
- ld b,d
- ld b,e
- ld b,h
- ld b,l
- ld b,(hl)
- ld b,a
-
- ld c,b
- ld c,c
- ld c,d
- ld c,e
- ld c,h
- ld c,l
- ld c,(hl)
- ld c,a
-
- ld d,b
- ld d,c
- ld d,d
- ld d,e
- ld d,h
- ld d,l
- ld d,(hl)
- ld d,a
-
- ld e,b
- ld e,c
- ld e,d
- ld e,e
- ld e,h
- ld e,l
- ld e,(hl)
- ld e,a
-
- ld h,b
- ld h,c
- ld h,d
- ld h,e
- ld h,h
- ld h,l
- ld h,(hl)
- ld h,a
-
- ld l,b
- ld l,c
- ld l,d
- ld l,e
- ld l,h
- ld l,l
- ld l,(hl)
- ld l,a
-
- ld (hl),b
- ld (hl),c
- ld (hl),d
- ld (hl),e
- ld (hl),h
- ld (hl),l
- halt
- ld (hl),a
-
- ld a,b
- ld a,c
- ld a,d
- ld a,e
- ld a,h
- ld a,l
- ld a,(hl)
- ld a,a
-
- add a,b
- add a,c
- add a,d
- add a,e
- add a,h
- add a,l
- add a,(hl)
- add a,a
-
- adc a,b
- adc a,c
- adc a,d
- adc a,e
- adc a,h
- adc a,l
- adc a,(hl)
- adc a,a
-
- sub b; note 1
- sub c
- sub d
- sub e
- sub h
- sub l
- sub (hl)
- sub a
-
- sbc a,b
- sbc a,c
- sbc a,d
- sbc a,e
- sbc a,h
- sbc a,l
- sbc a,(hl)
- sbc a,a
-
- and b; note 1
- and c
- and d
- and e
- and h
- and l
- and (hl)
- and a
-
- xor b; note 1
- xor c
- xor d
- xor e
- xor h
- xor l
- xor (hl)
- xor a
-
- or b; note 1
- or c
- or d
- or e
- or h
- or l
- or (hl)
- or a
-
- cp b; note 1
- cp c
- cp d
- cp e
- cp h
- cp l
- cp (hl)
- cp a
-
- ret nz
- pop bc
- jp nz,nn
- jp nn
- call nz,nn
- push bc
- add a,n
- rst 0
-
- ret z
- ret
- jp z,nn
- call z,nn
- call nn
- adc a,n
- rst 8
-
- ret nc
- pop de
- jp nc,nn
- out (n),a
- call nc,nn
- push de
- sub n
- rst 10h
-
- ret c
- exx
- jp c,nn
- in a,(n)
- call c,nn
- sbc a,n
- rst 18h
-
- ret po
- pop hl
- jp po,nn
- ex (sp),hl
- call po,nn
- push hl
- and n
- rst 20h
-
- ret pe
- jp (hl)
- jp pe,nn
- ex de,hl
- call pe,nn
- xor n
- rst 28h
-
- ret p
- pop af
- jp p,nn
- di
- call p,nn
- push af
- or n
- rst 30h
-
- ret m
- ld sp,hl
- jp m,nn
- ei
- call m,nn
- cp n
- rst 38h
-
- rlc b
- rlc c
- rlc d
- rlc e
- rlc h
- rlc l
- rlc (hl)
- rlc a
-
- rrc b
- rrc c
- rrc d
- rrc e
- rrc h
- rrc l
- rrc (hl)
- rrc a
-
- rl b
- rl c
- rl d
- rl e
- rl h
- rl l
- rl (hl)
- rl a
-
- rr b
- rr c
- rr d
- rr e
- rr h
- rr l
- rr (hl)
- rr a
-
- sla b
- sla c
- sla d
- sla e
- sla h
- sla l
- sla (hl)
- sla a
-
- sra b
- sra c
- sra d
- sra e
- sra h
- sra l
- sra (hl)
- sra a
-
- sll b; omitted from most assemblers
- sll c; valid, but redundant
- sll d
- sll e
- sll h
- sll l
- sll m
- sll a
-
- srl b
- srl c
- srl d
- srl e
- srl h
- srl l
- srl (hl)
- srl a
-
- bit 0,b
- bit 0,c
- bit 0,d
- bit 0,e
- bit 0,h
- bit 0,l
- bit 0,(hl)
- bit 0,a
-
- bit 1,b
- bit 1,c
- bit 1,d
- bit 1,e
- bit 1,h
- bit 1,l
- bit 1,(hl)
- bit 1,a
-
- bit 2,b
- bit 2,c
- bit 2,d
- bit 2,e
- bit 2,h
- bit 2,l
- bit 2,(hl)
- bit 2,a
-
- bit 3,b
- bit 3,c
- bit 3,d
- bit 3,e
- bit 3,h
- bit 3,l
- bit 3,(hl)
- bit 3,a
-
- bit 4,b
- bit 4,c
- bit 4,d
- bit 4,e
- bit 4,h
- bit 4,l
- bit 4,(hl)
- bit 4,a
-
- bit 5,b
- bit 5,c
- bit 5,d
- bit 5,e
- bit 5,h
- bit 5,l
- bit 5,(hl)
- bit 5,a
-
- bit 6,b
- bit 6,c
- bit 6,d
- bit 6,e
- bit 6,h
- bit 6,l
- bit 6,(hl)
- bit 6,a
-
- bit 7,b
- bit 7,c
- bit 7,d
- bit 7,e
- bit 7,h
- bit 7,l
- bit 7,(hl)
- bit 7,a
-
- res 0,b
- res 0,c
- res 0,d
- res 0,e
- res 0,h
- res 0,l
- res 0,(hl)
- res 0,a
-
- res 1,b
- res 1,c
- res 1,d
- res 1,e
- res 1,h
- res 1,l
- res 1,(hl)
- res 1,a
-
- res 2,b
- res 2,c
- res 2,d
- res 2,e
- res 2,h
- res 2,l
- res 2,(hl)
- res 2,a
-
- res 3,b
- res 3,c
- res 3,d
- res 3,e
- res 3,h
- res 3,l
- res 3,(hl)
- res 3,a
-
- res 4,b
- res 4,c
- res 4,d
- res 4,e
- res 4,h
- res 4,l
- res 4,(hl)
- res 4,a
-
- res 5,b
- res 5,c
- res 5,d
- res 5,e
- res 5,h
- res 5,l
- res 5,(hl)
- res 5,a
-
- res 6,b
- res 6,c
- res 6,d
- res 6,e
- res 6,h
- res 6,l
- res 6,(hl)
- res 6,a
-
- res 7,b
- res 7,c
- res 7,d
- res 7,e
- res 7,h
- res 7,l
- res 7,(hl)
- res 7,a
-
- set 0,b
- set 0,c
- set 0,d
- set 0,e
- set 0,h
- set 0,l
- set 0,(hl)
- set 0,a
-
- set 1,b
- set 1,c
- set 1,d
- set 1,e
- set 1,h
- set 1,l
- set 1,(hl)
- set 1,a
-
- set 2,b
- set 2,c
- set 2,d
- set 2,e
- set 2,h
- set 2,l
- set 2,(hl)
- set 2,a
-
- set 3,b
- set 3,c
- set 3,d
- set 3,e
- set 3,h
- set 3,l
- set 3,(hl)
- set 3,a
-
- set 4,b
- set 4,c
- set 4,d
- set 4,e
- set 4,h
- set 4,l
- set 4,(hl)
- set 4,a
-
- set 5,b
- set 5,c
- set 5,d
- set 5,e
- set 5,h
- set 5,l
- set 5,(hl)
- set 5,a
-
- set 6,b
- set 6,c
- set 6,d
- set 6,e
- set 6,h
- set 6,l
- set 6,(hl)
- set 6,a
-
- set 7,b
- set 7,c
- set 7,d
- set 7,e
- set 7,h
- set 7,l
- set 7,(hl)
- set 7,a
-
- add ix,bc
- add ix,de
- ld ix,nn
- ld (nn),ix
- inc ix
- add ix,ix
- ld ix,(nn)
- dec ix
-
- inc [ix+ind]
- dec [ix+ind]
- ld [ix+ind],n
- add ix,sp
-
- ld b,[ix+ind]
- ld c,[ix+ind]
- ld d,[ix+ind]
- ld e,[ix+ind]
- ld h,[ix+ind]
- ld l,[ix+ind]
-
- ld [ix+ind],b
- ld [ix+ind],c
- ld [ix+ind],d
- ld [ix+ind],e
- ld [ix+ind],h
- ld [ix+ind],l
- ld [ix+ind],a
-
- ld a,[ix+ind]
-
- add a,[ix+ind]
- adc a,[ix+ind]
- sub [ix+ind]; Note 1
- sbc a,[ix+ind]
- and [ix+ind]
- xor [ix+ind]
- or [ix+ind]
- cp [ix+ind]
-
- pop ix
- ex (sp),ix
- push ix
- jp (ix)
- ld sp,ix
-
- rlc [ix+ind]
- rrc [ix+ind]
- rl [ix+ind]
- rr [ix+ind]
- sla [ix+ind]
- sra [ix+ind]
- ; sll [ix+ind]
- srl [ix+ind]
-
- bit 0,[ix+ind]
- bit 1,[ix+ind]
- bit 2,[ix+ind]
- bit 3,[ix+ind]
- bit 4,[ix+ind]
- bit 5,[ix+ind]
- bit 6,[ix+ind]
- bit 7,[ix+ind]
-
- res 0,[ix+ind]
- res 1,[ix+ind]
- res 2,[ix+ind]
- res 3,[ix+ind]
- res 4,[ix+ind]
- res 5,[ix+ind]
- res 6,[ix+ind]
- res 7,[ix+ind]
-
- set 0,[ix+ind]
- set 1,[ix+ind]
- set 2,[ix+ind]
- set 3,[ix+ind]
- set 4,[ix+ind]
- set 5,[ix+ind]
- set 6,[ix+ind]
- set 7,[ix+ind]
-
- in b,(c)
- out (c),b
- sbc hl,bc
- ld (nn),bc
- neg
- retn
- im 0
- ld i,a
- in c,(c)
- out (c),c
- adc hl,bc
- ld bc,(nn)
- reti
- ld r,a
- in d,(c)
- out (c),d
- sbc hl,de
- ld (nn),de
- im 1
- ld a,i
- in e,(c)
- out (c),e
- adc hl,de
- ld de,(nn)
- im 2
- ld a,r
- in h,(c)
- out (c),h
- sbc hl,hl
- defw 063Edh,nn; LD (NN),HL (useless)
- rrd
- in l,(c)
- out (c),l
- adc hl,hl
- defw 06bedh,nn; LD HL,(NN) (useless)
- rld
- in (hl),(c)
- out (c),(hl)
- sbc hl,sp
- ld (nn),sp
- in a,(c)
- out (c),a
- adc hl,sp
- ld sp,(nn)
- ldi
- cpi
- ini
- outi
- ldd
- cpd
- ind
- outd
- ldir
- cpir
- inir
- otir
- lddr
- cpdr
- indr
- otdr
-
- add iy,bc
- add iy,de
- ld iy,nn
- ld (nn),iy
- inc iy
- add iy,iy
- ld iy,(nn)
- dec iy
-
- inc [iy+ind]
- dec [iy+ind]
- ld [iy+ind],n
- add iy,sp
-
- ld b,[iy+ind]
- ld c,[iy+ind]
- ld d,[iy+ind]
- ld e,[iy+ind]
- ld h,[iy+ind]
- ld l,[iy+ind]
-
- ld [iy+ind],b
- ld [iy+ind],c
- ld [iy+ind],d
- ld [iy+ind],e
- ld [iy+ind],h
- ld [iy+ind],l
- ld [iy+ind],a
-
- ld a,[iy+ind]
-
- add a,[iy+ind]
- adc a,[iy+ind]
- sub [iy+ind]; note 1
- sbc a,[iy+ind]
- and [iy+ind]
- xor [iy+ind]
- or [iy+ind]
- cp [iy+ind]
-
- pop iy
- ex (sp),iy
- push iy
- jp (iy)
- ld sp,iy
-
- rlc [iy+ind]
- rrc [iy+ind]
- rl [iy+ind]
- rr [iy+ind]
- sla [iy+ind]
- sra [iy+ind]
- ; sll [iy+ind]
- srl [iy+ind]
-
- bit 0,[iy+ind]
- bit 1,[iy+ind]
- bit 2,[iy+ind]
- bit 3,[iy+ind]
- bit 4,[iy+ind]
- bit 5,[iy+ind]
- bit 6,[iy+ind]
- bit 7,[iy+ind]
-
- res 0,[iy+ind]
- res 1,[iy+ind]
- res 2,[iy+ind]
- res 3,[iy+ind]
- res 4,[iy+ind]
- res 5,[iy+ind]
- res 6,[iy+ind]
- res 7,[iy+ind]
-
- set 0,[iy+ind]
- set 1,[iy+ind]
- set 2,[iy+ind]
- set 3,[iy+ind]
- set 4,[iy+ind]
- set 5,[iy+ind]
- set 6,[iy+ind]
- set 7,[iy+ind]
-
- nn: defs 2
- end
- PS