shithub: scc

ref: 67edfb04d803788d5d55242ec0ca813048d78266
dir: /as/target/x80/x80.dat/

View raw version
# Tab 16, tabs 16, :set ts=16
# op	args	size	bytes	format	cpu
.SECTION	sym,string?	0	none	section	Z80,R800,GB80
.TEXT	none	0	none	text	Z80,R800,GB80
.DATA	none	0	none	data	Z80,R800,GB80
.BSS	none	0	none	bss	Z80,R800,GB80
.DB	imm8+	0	none	defb	Z80,R800,GB80
.DEFB	imm8+	0	none	defb	Z80,R800,GB80
.BYTE	imm8+	0	none	defb	Z80,R800,GB80
.DW	imm16+	0	none	defw	Z80,R800,GB80
.DEFW	imm16+	0	none	defw	Z80,R800,GB80
.SHORT	imm16+	0	none	defw	Z80,R800,GB80
.WORD	imm16+	0	none	defw	Z80,R800,GB80
.DD	imm32+	0	none	defd	Z80,R800,GB80
.DEFD	imm32+	0	none	defd	Z80,R800,GB80
.LONG	imm32+	0	none	defd	Z80,R800,GB80
.INT	imm16+	0	none	defd	Z80,R800,GB80
.DQ	imm64+	0	none	defq	Z80,R800,GB80
.DEFQ	imm64+	0	none	defq	Z80,R800,GB80
.EQU	sym,imm16	0	none	equ	Z80,R800,GB80
.EQU	imm16	0	none	equ	Z80,R800,GB80
=	imm16	0	none	equ	Z80,R800,GB80
.SIZE	sym,imm16	0	none	size	Z80,R800,GB80
.SIZE	imm16	0	none	size	Z80,R800,GB80
.COMM	sym,imm16	0	none	common	Z80,R800,GB80
.COMM	imm16	0	none	common	Z80,R800,GB80
.TYPE	sym,imm16	0	none	type	Z80,R800,GB80
.TYPE	imm16	0	none	type	Z80,R800,GB80
.GLOBL	sym+	0	none	global	Z80,R800,GB80
.EXTERN	sym+	0	none	extrn	Z80,R800,GB80
.STRING	string+	0	none	string	Z80,R800,GB80
.ASCII	string+	0	none	ascii	Z80,R800,GB80
.ALIGN	imm16+	0	none	align	Z80,R800,GB80
.END	none	0	none	end	Z80,R800,GB80



# p is any register from B, C, D, E, IXL, IXH, A
# q is any register from B, C, D, E, IYL, IYH, A
# r is any register from B, C, D, E, L, H, A
# dd is any register from BC, DE, HL, SP
# qq is any register from BC, DE, HL, AF
# pp is any register from BC, DE, IX, SP
# rr is any register from BC, DE, IY, SP
# cc is any flag from NZ, Z, NC, C, PO, PE, P, M
# ss is any flag from C, NC, Z, NZ

# 8 bit load group
LD	r,imm8	2	0x06	r8_imm8	Z80,R800,GB80
LD	p,imm8	3	0xdd,0x06	r8_imm8	Z80,R800
LD	q,imm8	3	0xfd,0x06	r8_imm8	Z80,R800
LD	(HL),imm8	2	0x36	imm8	Z80,R800,GB80

LD	r,r	1	0x40	r8_r8	Z80,R800,GB80
LD	p,p	2	0xdd,0x40	r8_r8	Z80,R800
LD	q,q	2	0xfd,0x40	r8_r8	Z80,R800
LD	(HL),r	1	0x70	xx_r8	Z80,R800,GB80
LD	r,(HL)	1	0x46	r8_xx	Z80,R800,GB80

LD	r,(IX+n)	3	0xdd,0x46	r8_idx	Z80,R800
LD	r,(IY+n)	3	0xfd,0x46	r8_idx	Z80,R800
LD	(IX+n),r	3	0xdd,0x70	idx_r8	Z80,R800
LD	(IY+n),r	3	0xfd,0x70	idx_r8	Z80,R800

LD	(HL),imm8	2	0x36	imm8	Z80,R800,GB80
LD	(IX+n),imm8	3	0xdd,0x36	idx_imm8	Z80,R800
LD	(IY+n),imm8	3	0xfd,0x36	idx_imm8	Z80,R800

LD	A,(BC)	1	0x0a	noargs	Z80,R800,GB80
LD	A,(DE)	1	0x1a	noargs	Z80,R800,GB80
LD	A,(n)	3	0x3a	dir	Z80,R800,GB80

LD	(BC),A	1	0x2	noargs	Z80,R800,GB80
LD	(DE),A	1	0x12	noargs	Z80,R800,GB80
LD	(n),A	3	0x32	dir	Z80,R800,GB80

LD	A,I	2	0xed,0x57	noargs	Z80,R800
LD	A,R	2	0xed,0x5f	noargs	Z80,R800
LD	I,A	2	0xed,0x47	noargs	Z80,R800
LD	R,A	2	0xed,0x4f	noargs	Z80,R800

# 16 bit load group
LD	dd,imm16	3	0x01	r16_imm16	Z80,R800,GB80
LD	IX,imm16	4	0xdd,0x21	imm16	Z80,R800
LD	IY,imm16	4	0xfd,0x21	imm16	Z80,R800

LD	HL,(n)	3	0x2a	dir	Z80,R800,GB80
LD	dd,(n)	4	0xed,0x4b	r16_dir	Z80,R800
LD	IX,(n)	4	0xdd,0x2a	dir	Z80,R800
LD	IY,(n)	4	0xfd,0x2a	dir	Z80,R800

LD	(n),HL	3	0x22	dir	Z80,R800,GB80
LD	(n),dd	4	0xed,0x43	r16_dir	Z80,R800
LD	(n),IX	4	0xdd,0x22	dir	Z80,R800
LD	(n),IY	4	0xfd,0x22	dir	Z80,R800

LD	SP,HL	1	0xf9	noargs	Z80,R800,GB80
LD	SP,IX	2	0xdd,0xf9	noargs	Z80,R800
LD	SP,IY	2	0xfd,0xf9	noargs	Z80,R800

PUSH	qq	1	0xc5	r16_xx	Z80,R800,GB80
PUSH	IX	2	0xdd,0xe5	noargs	Z80,R800
PUSH	IY	2	0xfd,0xe5	noargs	Z80,R800
POP	qq	1	0xc1	r16_xx	Z80,R800,GB80
POP	IX	2	0xdd,0xe1	noargs	Z80,R800
POP	IY	2	0xfd,0xe1	noargs	Z80,R800

# 8 bit ALU group
ADD	A,r	1	0x80	xx_r8	Z80,R800,GB80
ADD	A,p	2	0xdd,0x80	xx_r8	Z80,R800
ADD	A,q	2	0xfd,0x80	xx_r8	Z80,R800
ADD	A,imm8	2	0xc6	imm8	Z80,R800,GB80
ADD	A,(HL)	1	0x86	noargs	Z80,R800,GB80
ADD	A,(IX+n)	3	0xdd,0x86	idx	Z80,R800
ADD	A,(IY+n)	3	0xfd,0x86	idx	Z80,R800

ADC	A,r	1	0x88	xx_r8	Z80,R800,GB80
ADC	A,p	2	0xdd,0x88	xx_r8	Z80,R800
ADC	A,q	2	0xfd,0x88	xx_r8	Z80,R800
ADC	A,imm8	2	0xce	imm8	Z80,R800,GB80
ADC	A,(HL)	1	0x8e	noargs	Z80,R800,GB80
ADC	A,(IX+n)	3	0xdd,0x8e	idx	Z80,R800
ADC	A,(IY+n)	3	0xfd,0x8e	idx	Z80,R800

SUB	A,r	1	0x90	xx_r8	Z80,R800,GB80
SUB	A,p	2	0xdd,0x90	xx_r8	Z80,R800
SUB	A,q	2	0xfd,0x90	xx_r8	Z80,R800
SUB	A,imm8	2	0xd6	imm8	Z80,R800,GB80
SUB	A,(HL)	1	0x96	noargs	Z80,R800,GB80
SUB	A,(IX+n)	3	0xdd,0x96	idx	Z80,R800
SUB	A,(IY+n)	3	0xfd,0x96	idx	Z80,R800

SBC	A,r	1	0x98	xx_r8	Z80,R800,GB80
SBC	A,p	2	0xdd,0x98	xx_r8	Z80,R800
SBC	A,q	2	0xfd,0x98	xx_r8	Z80,R800
SBC	A,imm8	2	0xde	imm8	Z80,R800,GB80
SBC	A,(HL)	1	0x9e	noargs	Z80,R800,GB80
SBC	A,(IX+n)	3	0xdd,0x9e	idx	Z80,R800
SBC	A,(IY+n)	3	0xfd,0x9e	idx	Z80,R800

AND	A,r	1	0xa0	xx_r8	Z80,R800,GB80
AND	A,p	2	0xdd,0xa0	xx_r8	Z80,R800
AND	A,q	2	0xfd,0xa0	xx_r8	Z80,R800
AND	A,imm8	2	0xe6	imm8	Z80,R800,GB80
AND	A,(HL)	1	0xa6	noargs	Z80,R800,GB80
AND	A,(IX+n)	3	0xdd,0xa6	idx	Z80,R800
AND	A,(IY+n)	3	0xfd,0xa6	idx	Z80,R800

OR	A,r	1	0xb0	xx_r8	Z80,R800,GB80
OR	A,p	2	0xdd,0xb0	xx_r8	Z80,R800
OR	A,q	2	0xfd,0xb0	xx_r8	Z80,R800
OR	A,imm8	2	0xf6	imm8	Z80,R800,GB80
OR	A,(HL)	1	0xb6	noargs	Z80,R800,GB80
OR	A,(IX+n)	3	0xdd,0xb6	idx	Z80,R800
OR	A,(IY+n)	3	0xfd,0xb6	idx	Z80,R800

XOR	A,r	1	0xa8	xx_r8	Z80,R800,GB80
XOR	A,p	2	0xdd,0xa8	xx_r8	Z80,R800
XOR	A,q	2	0xfd,0xa8	xx_r8	Z80,R800
XOR	A,imm8	2	0xee	imm8	Z80,R800,GB80
XOR	A,(HL)	1	0xae	noargs	Z80,R800,GB80
XOR	A,(IX+n)	3	0xdd,0xa6	idx	Z80,R800
XOR	A,(IY+n)	3	0xfd,0xa6	idx	Z80,R800

CP	A,r	1	0xb8	xx_r8	Z80,R800,GB80
CP	A,p	2	0xdd,0xb8	xx_r8	Z80,R800
CP	A,q	2	0xfd,0xb8	xx_r8	Z80,R800
CP	A,imm8	2	0xfe	imm8	Z80,R800,GB80
CP	A,(HL)	1	0xbe	noargs	Z80,R800,GB80
CP	A,(IX+n)	3	0xdd,0xbe	idx	Z80,R800
CP	A,(IY+n)	3	0xfd,0xbe	idx	Z80,R800

INC	r	1	0x04	r8_xx	Z80,R800,GB80
INC	p	2	0xdd,0x04	r8_xx	Z80,R800
INC	q	2	0xfd,0x04	r8_xx	Z80,R800
INC	(HL)	1	0x34	noargs	Z80,R800,GB80
INC	(IX+n)	3	0xdd,0x34	idx	Z80,R800
INC	(IY+n)	3	0xfd,0x34	idx	Z80,R800

DEC	r	1	0x05	r8_xx	Z80,R800,GB80
DEC	p	2	0xdd,0x05	r8_xx	Z80,R800
DEC	q	2	0xfd,0x05	r8_xx	Z80,R800
DEC	(HL)	1	0x35	noargs	Z80,R800,GB80
DEC	(IX+n)	3	0xdd,0x35	idx	Z80,R800
DEC	(IY+n)	3	0xfd,0x35	idx	Z80,R800

# 16 bit ALU group
ADD	HL,dd	1	0x09	xx_r16	Z80,R800,GB80
ADC	HL,dd	2	0xed,0x4a	xx_r16	Z80,R800
SBC	HL,dd	2	0xed,0x42	xx_r16	Z80,R800
ADD	IX,pp	2	0xdd,0x09	xx_r16	Z80,R800
ADD	IY,rr	2	0xfd,0x09	xx_r16	Z80,R800

INC	dd	1	0x03	r16_xx	Z80,R800,GB80
INC	IX	2	0xdd,0x23	noargs	Z80,R800
INC	IY	2	0xfd,0x23	noargs	Z80,R800

DEC	dd	1	0x0b	r16_xx	Z80,R800,GB80
DEC	IX	2	0xdd,0x2b	noargs	Z80,R800
DEC	IY	2	0xfd,0x2b	noargs	Z80,R800

# General purpose arithmetic and CPU control group
DAA	none	1	0x27	noargs	Z80,R800,GB80
CPL	none	1	0x2f	noargs	Z80,R800,GB80
NEG	none	2	0xed,0x44	noargs	Z80,R800
CCF	none	1	0x3f	noargs	Z80,R800,GB80
SCF	none	1	0x37	noargs	Z80,R800,GB80
NOP	none	1	0x00	noargs	Z80,R800,GB80
HALT	none	1	0x76	noargs	Z80,R800,GB80
DI	none	1	0xf3	noargs	Z80,R800,GB80
EI	none	1	0xfb	noargs	Z80,R800,GB80
IM	imm8	2	0xed,0x46	im	Z80,R800

# Exchange, block transfer and search groups
EX	DE,HL	1	0xeb	noargs	Z80,R800
EX	AF,AF'	1	0x08	noargs	Z80,R800
EXX	none	1	0xd9	noargs	Z80,R800
EX	(SP),HL	1	0xe3	noargs	Z80,R800
EX	(SP),IX	2	0xdd,0xe3	noargs	Z80,R800
EX	(SP),IY	2	0xfd,0xe3	noargs	Z80,R800

LDI	none	2	0xed,0xa0	noargs	Z80,R800
LDIR	none	2	0xed,0xb0	noargs	Z80,R800
LDD	none	2	0xed,0xa8	noargs	Z80,R800
LDDR	none	2	0xed,0xb8	noargs	Z80,R800

CPI	none	2	0xed,0xa1	noargs	Z80,R800
CPIR	none	2	0xed,0xb1	noargs	Z80,R800
CPD	none	2	0xed,0xa9	noargs	Z80,R800
CPDR	none	2	0xed,0xb9	noargs	Z80,R800

# Rotate and shift group
RLCA	none	1	0x07	noargs	Z80,R800,GB80
RLA	none	1	0x17	noargs	Z80,R800,GB80
RRCA	none	1	0x0f	noargs	Z80,R800,GB80
RRA	none	1	0x1f	noargs	Z80,R800,GB80

RLD	none	2	0xed,0x6f	noargs	Z80,R800
RRD	none	2	0xed,0x67	noargs	Z80,R800

RLC	r	2	0xcb,0x00	r8	Z80,R800
RLC	(HL)	2	0xcb,0x06	noargs	Z80,R800
RLC	(IX+n)	4	0xdd,0xcb,0x06	idx	Z80,R800
RLC	(IY+n)	4	0xfd,0xcb,0x06	idx	Z80,R800
RLC	(IX+n),r	4	0xdd,0xcb,0,0x00	idx_r8	Z80,R800
RLC	(IY+n),r	4	0xfd,0xcb,0,0x00	idx_r8	Z80,R800

RL	r	2	0xcb,0x10	r8	Z80,R800
RL	(HL)	2	0xcb,0x16	noargs	Z80,R800
RL	(IX+n)	4	0xdd,0xcb,0x16	idx	Z80,R800
RL	(IY+n)	4	0xfd,0xcb,0x16	idx	Z80,R800
RL	(IX+n),r	4	0xdd,0xcb,0,0x10	idx_r8	Z80,R800
RL	(IY+n),r	4	0xfd,0xcb,0,0x10	idx_r8	Z80,R800

RRC	r	2	0xcb,0x08	r8	Z80,R800
RRC	(HL)	2	0xcb,0x0e	noargs	Z80,R800
RRC	(IX+n)	4	0xdd,0xcb,0x06	idx	Z80,R800
RRC	(IY+n)	4	0xfd,0xcb,0x06	idx	Z80,R800
RRC	(IX+n),r	4	0xdd,0xcb,0,0x08	idx_r8	Z80,R800
RRC	(IY+n),r	4	0xfd,0xcb,0,0x08	idx_r8	Z80,R800

RR	r	2	0xcb,0x18	r8	Z80,R800
RR	(HL)	2	0xcb,0x1e	noargs	Z80,R800
RR	(IX+n)	4	0xdd,0xcb,0x1e	idx	Z80,R800
RR	(IY+n)	4	0xfd,0xcb,0x1e	idx	Z80,R800
RR	(IX+n),r	4	0xdd,0xcb,0,0x18	idx_r8	Z80,R800
RR	(IY+n),r	4	0xfd,0xcb,0,0x18	idx_r8	Z80,R800

SLA	r	2	0xcb,0x20	r8	Z80,R800
SLA	(HL)	2	0xcb,0x26	noargs	Z80,R800
SLA	(IX+n)	4	0xdd,0xcb,0x26	idx	Z80,R800
SLA	(IY+n)	4	0xfd,0xcb,0x26	idx	Z80,R800
SLA	(IX+n),r	4	0xdd,0xcb,0,0x20	idx_r8	Z80,R800
SLA	(IY+n),r	4	0xfd,0xcb,0,0x20	idx_r8	Z80,R800

SLL	r	2	0xcb,0x30	r8	Z80
SLL	(HL)	2	0xcb,0x36	noargs	Z80
SLL	(IX+n)	4	0xdd,0xcb,0x36	idx	Z80
SLL	(IY+n)	4	0xfd,0xcb,0x36	idx	Z80
SLL	(IX+n),r	4	0xdd,0xcb,0,0x30	idx_r8	Z80
SLL	(IY+n),r	4	0xfd,0xcb,0,0x30	idx_r8	Z80

SRA	r	2	0xcb,0x28	r8	Z80,R800
SRA	(HL)	2	0xcb,0x2e	noargs	Z80,R800
SRA	(IX+n)	4	0xdd,0xcb,0x2e	idx	Z80,R800
SRA	(IY+n)	4	0xfd,0xcb,0x2e	idx	Z80,R800
SRA	(IX+n),r	4	0xdd,0xcb,0,0x28	idx_r8	Z80,R800
SRA	(IY+n),r	4	0xfd,0xcb,0,0x28	idx_r8	Z80,R800

SRL	r	2	0xcb,0x38	r8	Z80,R800
SRL	(HL)	2	0xcb,0x3e	noargs	Z80,R800
SRL	(IX+n)	4	0xdd,0xcb,0x3e	idx	Z80,R800
SRL	(IY+n)	4	0xfd,0xcb,0x3e	idx	Z80,R800
SRL	(IX+n),r	4	0xdd,0xcb,0,0x38	idx_r8	Z80,R800
SRL	(IY+n),r	4	0xfd,0xcb,0,0x38	idx_r8	Z80,R800

# Bit manipulation group
BIT	imm3,r	2	0xcb,0x40	r_bit	Z80,R800
BIT	imm3,(HL)	2	0xcb,0x46	bit	Z80,R800
BIT	imm3,(IX+n)	4	0xdd,0xcb,0,0x46	idx_bit	Z80,R800
BIT	imm3,(IY+n)	4	0xfd,0xcb,0,0x46	idx_bit	Z80,R800

SET	imm3,r	2	0xcb,0xc0	r_bit	Z80,R800
SET	imm3,(HL)	2	0xcb,0xc6	bit	Z80,R800
SET	imm3,(IX+n)	4	0xdd,0xcb,0,0xc6	idx_bit	Z80,R800
SET	imm3,(IY+n)	4	0xfd,0xcb,0,0xc6	idx_bit	Z80,R800
SET	imm3,(IX+n),r	4	0xdd,0xcb,0,0xc0	r_idx_bit	Z80,R800
SET	imm3,(IY+n),r	4	0xfd,0xcb,0,0xc0	r_idx_bit	Z80,R800

RES	imm3,r	2	0xcb,0x80	r_bit	Z80,R800
RES	imm3,(HL)	2	0xcb,0x86	bit	Z80,R800
RES	imm3,(IX+n)	4	0xdd,0xcb,0,0x86	idx_bit	Z80,R800
RES	imm3,(IY+n)	4	0xfd,0xcb,0,0x86	idx_bit	Z80,R800
RES	imm3,(IX+n),r	4	0xdd,0xcb,0,0x80	r_idx_bit	Z80,R800
RES	imm3,(IY+n),r	4	0xfd,0xcb,0,0x80	r_idx_bit	Z80,R800

# Input and output group
IN	A,(n)	2	0xdb	imm8	Z80,R800
IN	r,(C)	2	0xed,0x40	r8_xx	Z80,R800
IN	F,(C)	2	0xed,0x70	noargs	Z80,R800
INI 	none	2	0xed,0xa2	noargs	Z80,R800
INIR	none	2	0xed,0xb2	noargs	Z80,R800
IND	none	2	0xed,0xaa	noargs	Z80,R800
INDR	none	2	0xed,0xba	noargs	Z80,R800

OUT	(n),A	2	0xd3	imm8	Z80,R800
OUT	(C),r	2	0xed,0x41	r8_xx	Z80,R800
OUT	(C),0	2	0xed,0x71	noargs	Z80,R800
OUTI	none	2	0xed,0xa3	noargs	Z80,R800
OTIR	none	2	0xed,0xb3	noargs	Z80,R800
OUTD	none	2	0xed,0xab	noargs	Z80,R800
OTDR	none	2	0xed,0xbb	noargs	Z80,R800

# Jump group
JP	imm16	3	0xc3	imm16	Z80,R800,GB80
JP	cc,imm16	3	0xc2	cc	Z80,R800,GB80
JR	imm8	2	0x18	jr	Z80,R800,GB80
JR	ss,imm8	2	0x00	jr	Z80,R800,GB80
JP	IY	2	0xfd,0xe9	noargs	Z80,R800
DJNZ	imm8	2	0x10	jr	Z80,R800,GB80

# Call and return group
CALL	imm16	3	0xcd	imm16	Z80,R800,GB80
CALL	cc,imm16	3	0xc4	cc	Z80,R800
RET	none	1	0xc9	noargs	Z80,R800,GB80
RET	cc	1	0xc0	cc	Z80,R800
RETI	none	2	0xed,0x4d	noargs	Z80,R800
RETN	none	2	0xed,0x45	noargs	Z80,R800
RST	rst	1	0xc7	rst	Z80,R800,GB80