Как написать игру на ассемблере для ZX Spectrum/Приложение I

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: А. Евдокимов, А. Капульцевич, И. Капульцевич, ИД «Питер»

КОМАНДЫ АССЕМБЛЕРА

Это приложение содержит таблицу кодировки команд микропроцессора Z80. В первой графе указывается мнемоника, во второй - соответствующий ей машинный код, а в последней - время исполнения инструкции, измеряемое в тактах микропроцессора. Для условных и циклических команд (таких как LDIR) даются два значения времени, так как при соблюдении условия или завершении цикла на их выполнение требуется больше тактов.

Для некоторых команд приведены два варианта машинных кодов, но время исполнения относится только к более короткому варианту. Следует помнить, что ассемблер при трансляции мнемоник также выбирает более короткий код. Вообще же для многих команд существуют дополнительные варианты кодировки, но они уже относятся к набору так называемых недокументированных команд, некоторые из них приведены в следующем приложении.

Обозначения: ADDR - двухбайтовый адрес, N - однобайтовое число, NN - двухбайтовое число, PORT - младший байт адреса порта, XX - шестнадцатеричный байт-аргумент, Д - байт смещения (-128...+127).

Команда Коды T
ADC A,(HL) 8E 7
ADC A,(IX+Д) DD8EXX 19
ADC A,(IY+Д) FD8EXX 19
ADC A,A 8F 4
ADC A,B 88 4
ADC A,C 89 4
ADC A,D 8A 4
ADC A,E 8B 4
ADC A,H 8C 4
ADC A,L 8D 4
ADC A,N CEXX 7
ADC HL,BC ED4A 15
ADC HL,DE ED5A 15
ADC HL,HL ED6A 15
ADC HL,SP ED7A 15
ADD A,(HL) 86 7
ADD A,(IX+Д) DD86XX 19
ADD A,(IY+Д) FD86XX 19
ADD A,A 87 4
ADD A,B 80 4
ADD A,C 81 4
ADD A,D 82 4
ADD A,E 83 4
ADD A,H 84 4
ADD A,L 85 4
ADD A,N C6XX 7
ADD HL,BC 09 11
ADD HL,DE 19 11
ADD HL,HL 29 11
ADD HL,SP 39 11
ADD IX,BC DD09 15
ADD IX,DE DD19 15
ADD IX,IX DD29 15
ADD IX,SP DD39 15
ADD IY,BC FD09 15
ADD IY,DE FD19 15
ADD IY,IY FD29 15
ADD IY,SP FD39 15
AND (HL) A6 7
AND (IX+Д) DDA6XX 19
AND (IY+Д) FDA6XX 19
AND A A7 4
AND B A0 4
AND C A1 4
AND D A2 4
AND E A3 4
AND H A4 4
AND L A5 4
AND N E6XX 7
BIT 0,(HL) CB46 12
BIT 0,(IX+Д) DDCBXX46 20
BIT 0,(IY+Д) FDCBXX46 20
BIT 0,A CB47 8
BIT 0,B CB40 8
BIT 0,C CB41 8
BIT 0,D CB42 8
BIT 0,E CB43 8
BIT 0,H CB44 8
BIT 0,L CB45 8
BIT 1,(HL) CB4E 12
BIT 1,(IX+Д) DDCBXX4E 20
BIT 1,(IY+Д) FDCBXX4E 20
BIT 1,A CB4F 8
BIT 1,B CB48 8
BIT 1,C CB49 8
BIT 1,D CB4A 8
BIT 1,E CB4B 8
BIT 1,H CB4C 8
BIT 1,L CB4D 8
BIT 2,(HL) CB56 12
BIT 2,(IX+Д) DDCBXX56 20
BIT 2,(IY+Д) FDCBXX56 20
BIT 2,A CB57 8
BIT 2,B CB50 8
BIT 2,C CB51 8
BIT 2,D CB52 8
BIT 2,E CB53 8
BIT 2,H CB54 8
BIT 2,L CB55 8
BIT 3,(HL) CB5E 12
BIT 3,(IX+Д) DDCBXX5E 20
BIT 3,(IY+Д) FDCBXX5E 8
BIT 3,A CB5F 8
BIT 3,B CB58 8
BIT 3,C CB59 8
BIT 3,D CB5A 8
BIT 3,E CB5B 8
BIT 3,H CB5C 8
BIT 3,L CB5D 8
BIT 4,(HL) CB66 12
BIT 4,(IX+Д) DDCBXX66 20
BIT 4,(IY+Д) FDCBXX66 20
BIT 4,A CB67 8
BIT 4,B CB60 8
BIT 4,C CB61 8
BIT 4,D CB62 8
BIT 4,E CB63 8
BIT 4,H CB64 8
BIT 4,L CB65 8
BIT 5,(HL) CB6E 12
BIT 5,(IX+Д) DDCBXX6E 20
BIT 5,(IY+Д) FDCBXX6E 20
BIT 5,A CB6F 8
BIT 5,B CB68 8
BIT 5,C CB69 8
BIT 5,D CB6A 8
BIT 5,E CB6B 8
BIT 5,H CB6C 8
BIT 5,L CB6D 8
BIT 6,(HL) CB76 12
BIT 6,(IX+Д) DDCBXX76 20
BIT 6,(IY+Д) FDCBXX76 20
BIT 6,A CB77 8
BIT 6,B CB70 8
BIT 6,C CB71 8
BIT 6,D CB72 8
BIT 6,E CB73 8
BIT 6,H CB74 8
BIT 6,L CB75 8
BIT 7,(HL) CB7E 12
BIT 7,(IX+Д) DDCBXX7E 20
BIT 7,(IY+Д) FDCBXX7E 20
BIT 7,A CB7F 8
BIT 7,B CB78 8
BIT 7,C CB79 8
BIT 7,D CB7A 8
BIT 7,E CB7B 8
BIT 7,H CB7C 8
BIT 7,L CB7D 8
CALL ADDR CDXXXX 17
CALL C,ADDR DCXXXX 10/17
CALL M,ADDR FCXXXX 10/17
CALL NC,ADDR D4XXXX 10/17
CALL NZ,ADDR C4XXXX 10/17
CALL P,ADDR F4XXXX 10/17
CALL PE,ADDR ECXXXX 10/17
CALL PO,ADDR E4XXXX 10/17
CALL Z,ADDR CCXXXX 10/17
CCF 3F 4
CP (HL) BE 7
CP (IX+Д) DDBEXX 19
CP (IY+Д) FDBEXX 19
CP A BF 4
CP B B8 4
CP C B9 4
CP D BA 4
CP E BB 4
CP H BC 4
CP L BD 4
CP N FEXX 7
CPD EDA9 16
CPDR EDB9 21/16
CPI EDA1 16
CPIR EDB1 21/16
CPL 2F 4
DAA 27 4
DEC (HL) 35 11
DEC (IX+Д) DD35XX 23
DEC (IY+Д) FD35XX 23
DEC A 3D 4
DEC B 05 4
DEC BC 0B 6
DEC C 0D 4
DEC D 15 4
DEC DE 1B 6
DEC E 1D 4
DEC H 25 4
DEC HL 2B 6
DEC IX DD2B 10
DEC IY FD2B 10
DEC L 2D 4
DEC SP 3B 6
DI F3 4
DJNZ Д 10XX 13/8
EI FB 4
EX (SP),HL E3 19
EX (SP),IX DDE3 23
EX (SP),IY FDE3 23
EX AF,AF' 08 4
EX DE,HL EB 4
EXX D9 4
HALT 76 4
IM 0 ED46 8
IM 1 ED56 8
IM 2 ED5E 8
IN (HL),(C) ED70 12
IN A,(C) ED78 12
IN A,(PORT) DBXX 11
IN B,(C) ED40 12
IN C,(C) ED48 12
IN D,(C) ED50 12
IN E,(C) ED58 12
IN H,(C) ED60 12
IN L,(C) ED68 12
INC (HL) 34 11
INC (IX+Д) DD34XX 23
INC (IY+Д) FD34XX 23
INC A 3C 4
INC B 04 4
INC BC 03 6
INC C 0C 4
INC D 14 4
INC DE 13 6
INC E 1C 4
INC H 24 4
INC HL 23 6
INC IX DD23 10
INC IY FD23 10
INC L 2C 4
INC SP 33 6
IND EDAA 16
INDR EDBA 21/16
INI EDA2 16
INIR EDB2 21/16
JP (HL) E9 4
JP (IX) DDE9 8
JP (IY) FDE9 8
JP ADDR C3XXXX 10
JP C,ADDR DAXXXX 10
JP M,ADDR FAXXXX 10
JP NC,ADDR D2XXXX 10
JP NZ,ADDR C2XXXX 10
JP P,ADDR F2XXXX 10
JP PE,ADDR EAXXXX 10
JP PO,ADDR E2XXXX 10
JP Z,ADDR CAXXXX 10
JR Д 18XX 12
JR C,Д 38XX 12/7
JR NC,Д 30XX 12/7
JR NZ,Д 20XX 12/7
JR Z,Д 28XX 12/7
LD (ADDR),A 32XXXX 13
LD (ADDR),BC ED43XXXX 20
LD (ADDR),DE ED53XXXX 20
LD (ADDR),HL 22XXXX
ED63XXXX
16
LD (ADDR),IX DD22XXXX 20
LD (ADDR),IY FD22XXXX 20
LD (ADDR),SP ED73XXXX 20
LD (BC),A 02 7
LD (DE),A 12 7
LD (HL),A 77 7
LD (HL),B 70 7
LD (HL),C 71 7
LD (HL),D 72 7
LD (HL),E 73 7
LD (HL),H 74 7
LD (HL),L 75 7
LD (HL),N 36XX 10
LD (IX+Д),A DD77XX 19
LD (IX+Д),B DD70XX 19
LD (IX+Д),C DD71XX 19
LD (IX+Д),D DD72XX 19
LD (IX+Д),E DD73XX 19
LD (IX+Д),H DD74XX 19
LD (IX+Д),L DD75XX 19
LD (IX+Д),N DD36XXXX 19
LD (IY+Д),A FD77XX 19
LD (IY+Д),B FD70XX 19
LD (IY+Д),C FD71XX 19
LD (IY+Д),D FD72XX 19
LD (IY+Д),E FD73XX 19
LD (IY+Д),H FD74XX 19
LD (IY+Д),L FD75XX 19
LD (IY+Д),N FD36XXXX 19
LD A,(ADDR) 3AXXXX 13
LD A,(BC) 0A 7
LD A,(DE) 1A 7
LD A,(HL) 7E 7
LD A,(IX+Д) DD7EXX 19
LD A,(IY+Д) FD7EXX 19
LD A,A 7F 4
LD A,B 78 4
LD A,C 79 4
LD A,D 7A 4
LD A,E 7B 4
LD A,H 7C 4
LD A,I ED57 9
LD A,L 7D 4
LD A,R ED5F 9
LD A,N 3EXX 7
LD B,(HL) 46 7
LD B,(IX+Д) DD46XX 19
LD B,(IY+Д) FD46XX 19
LD B,A 47 4
LD B,B 40 4
LD B,C 41 4
LD B,D 42 4
LD B,E 43 4
LD B,H 44 4
LD B,L 45 4
LD B,N 06XX 7
LD BC,(ADDR) ED4BXXXX 20
LD BC,NN 01XXXX 10
LD C,(HL) 4E 7
LD C,(IX+Д) DD4EXX 19
LD C,(IY+Д) FD4EXX 19
LD C,A 4F 4
LD C,B 48 4
LD C,C 49 4
LD C,D 4A 4
LD C,E 4B 4
LD C,H 4C 4
LD C,L 4D 4
LD C,N 0EXX 7
LD D,(HL) 56 7
LD D,(IX+Д) DD56XX 19
LD D,(IY+Д) FD56XX 19
LD D,A 57 4
LD D,B 50 4
LD D,C 51 4
LD D,D 52 4
LD D,E 53 4
LD D,H 54 4
LD D,L 55 4
LD D,N 16XX 7
LD DE,(ADDR) ED5BXXXX 20
LD DE,NN 11XXXX 10
LD E,(HL) 5E 7
LD E,(IX+Д) DD5EXX 19
LD E,(IY+Д) FD5EXX 19
LD E,A 5F 4
LD E,B 58 4
LD E,C 59 4
LD E,D 5A 4
LD E,E 5B 4
LD E,H 5C 4
LD E,L 5D 4
LD E,N 1EXX 7
LD H,(HL) 66 7
LD H,(IX+Д) DD66XX 19
LD H,(IY+Д) FD66XX 19
LD H,A 67 4
LD H,B 60 4
LD H,C 61 4
LD H,D 62 4
LD H,E 63 4
LD H,H 64 4
LD H,L 65 4
LD H,N 26XX 7
LD HL,(ADDR) 2AXXXX
ED6BXXXX
16
LD HL,NN 21XXXX 10
LD I,A ED47 9
LD IX,(ADDR) DD2AXXXX 20
LD IX,NN DD21XXXX 14
LD IY,(ADDR) FD2AXXXX 20
LD IY,NN FD21XXXX 14
LD L,(HL) 6E 7
LD L,(IX+Д) DD6EXX 19
Команда Коды T
LD L,(IY+Д) FD6EXX 19
LD L,A 6F 4
LD L,B 68 4
LD L,C 69 4
LD L,D 6A 4
LD L,E 6B 4
LD L,H 6C 4
LD L,L 6D 4
LD L,N 2EXX 7
LD R,A ED4F 9
LD SP,(ADDR) ED7BXXXX 20
LD SP,IX DDF9 10
LD SP,IY FDF9 10
LD SP,HL F9 6
LD SP,NN 31XXXX 10
LDD EDA8 16
LDDR EDB8 21/16
LDI EDA0 16
LDIR EDB0 21/16
NEG ED44 8
NOP 00 4
OR (HL) B6 7
OR (IX+Д) DDB6XX 19
OR (IY+Д) FDB6XX 19
OR A B7 4
OR B B0 4
OR C B1 4
OR D B2 4
OR E B3 4
OR H B4 4
OR L B5 4
OR N F6XX 7
OTDR EDBB 21/15
OTIR EDB3 21/15
OUT (C),A ED79 12
OUT (C),B ED41 12
OUT (C),C ED49 12
OUT (C),D ED51 12
OUT (C),E ED59 12
OUT (C),H ED61 12
OUT (C),L ED69 12
OUT (PORT),A D3XX 12
OUTD EDAB 16
OUTI EDA3 16
POP AF F1 10
POP BC C1 10
POP DE D1 10
POP HL E1 10
POP IX DDE1 14
POP IY FDE1 14
PUSH AF F5 11
PUSH BC C5 11
PUSH DE D5 11
PUSH HL E5 11
PUSH IX DDE5 15
PUSH IY FDE5 15
RES 0,(HL) CB86 15
RES 0,(IX+Д) DDCBXX86 23
RES 0,(IY+Д) FDCBXX86 23
RES 0,A CB87 8
RES 0,B CB80 8
RES 0,C CB81 8
RES 0,D CB82 8
RES 0,E CB83 8
RES 0,H CB84 8
RES 0,L CB85 8
RES 1,(HL) CB8E 15
RES 1,(IX+Д) DDCBXX8E 23
RES 1,(IY+Д) FDCBXX8E 23
RES 1,A CB8F 8
RES 1,B CB88 8
RES 1,C CB89 8
RES 1,D CB8A 8
RES 1,E CB8B 8
RES 1,H CB8C 8
RES 1,L CB8D 8
RES 2,(HL) CB96 15
RES 2,(IX+Д) DDCBXX96 23
RES 2,(IY+Д) FDCBXX96 23
RES 2,A CB97 8
RES 2,B CB90 8
RES 2,C CB91 8
RES 2,D CB92 8
RES 2,E CB93 8
RES 2,H CB94 8
RES 2,L CB95 8
RES 3,(HL) CB9E 15
RES 3,(IX+Д) DDCBXX9E 23
RES 3,(IY+Д) FDCBXX9E 23
RES 3,A CB9F 8
RES 3,B CB98 8
RES 3,C CB99 8
RES 3,D CB9A 8
RES 3,E CB9B 8
RES 3,H CB9C 8
RES 3,L CB9D 8
RES 4,(HL) CBA6 15
RES 4,(IX+Д) DDCBXXA6 23
RES 4,(IY+Д) FDCBXXA6 23
RES 4,A CBA7 8
RES 4,B CBA0 8
RES 4,C CBA1 8
RES 4,D CBA2 8
RES 4,E CBA3 8
RES 4,H CBA4 8
RES 4,L CBA5 8
RES 5,(HL) CBAE 15
RES 5,(IX+Д) DDCBXXAE 23
RES 5,(IY+Д) FDCBXXAE 23
RES 5,A CBAF 8
RES 5,B CBA8 8
RES 5,C CBA9 8
RES 5,D CBAA 8
RES 5,E CBAB 8
RES 5,H CBAC 8
RES 5,L CBAD 8
RES 6,(HL) CBB6 15
RES 6,(IX+Д) DDCBXXB6 23
RES 6,(IY+Д) FDCBXXB6 23
RES 6,A CBB7 8
RES 6,B CBB0 8
RES 6,C CBB1 8
RES 6,D CBB2 8
RES 6,E CBB3 8
RES 6,H CBB4 8
RES 6,L CBB5 8
RES 7,(HL) CBBE 15
RES 7,(IX+Д) DDCBXXBE 23
RES 7,(IY+Д) FDCBXXBE 23
RES 7,A CBBF 8
RES 7,B CBB8 8
RES 7,C CBB9 8
RES 7,D CBBA 8
RES 7,E CBBB 8
RES 7,H CBBC 8
RES 7,L CBBD 8
RET C9 10
RET C D8 11/5
RET M F8 11/5
RET NC D0 11/5
RET NZ C0 11/5
RET P F0 11/5
RET PE E8 11/5
RET PO E0 11/5
RET Z C8 11/5
RETI ED4D 14
RETN ED45 14
RL (HL) CB16 15
RL (IX+Д) DDCBXX16 23
RL (IY+Д) FDCBXX16 23
RL A CB17 8
RL B CB10 8
RL C CB11 8
RL D CB12 8
RL E CB13 8
RL H CB14 8
RL L CB15 8
RLA 17 4
RLC (HL) CB06 15
RLC (IX+Д) DDCBXX06 23
RLC (IY+Д) FDCBXX06 23
RLC A CB07 8
RLC B CB00 8
RLC C CB01 8
RLC D CB02 8
RLC E CB03 8
RLC H CB04 8
RLC L CB05 8
RLCA 07 4
RLD ED6F 18
RR (HL) CB1E 15
RR (IX+Д) DDCBXX1E 23
RR (IY+Д) FDCBXX1E 23
RR A CB1F 8
RR B CB18 8
RR C CB19 8
RR D CB1A 8
RR E CB1B 8
RR H CB1C 8
RR L CB1D 8
RRA 1F 4
RRC (HL) CB0E 15
RRC (IX+Д) DDCBXX0E 23
RRC (IY+Д) FDCBXX0E 23
RRC A CB0F 8
RRC B CB08 8
RRC C CB09 8
RRC D CB0A 8
RRC E CB0B 8
RRC H CB0C 8
RRC L CB0D 8
RRCA 0F 4
RRD ED67 18
RST 00 C7 11
RST 08 CF 11
RST 10 D7 11
RST 18 DF 11
RST 20 E7 11
RST 28 EF 11
RST 30 F7 11
RST 38 FF 11
SBC A,(HL) 9E 7
SBC A,(IX+Д) DD9EXX 19
SBC A,(IY+Д) FD9EXX 19
SBC A,A 9F 4
SBC A,B 98 4
SBC A,C 99 4
SBC A,D 9A 4
SBC A,E 9B 4
SBC A,H 9C 4
SBC A,L 9D 4
SBC A,N DEXX 7
SBC HL,BC ED42 15
SBC HL,DE ED52 15
SBC HL,HL ED62 15
SBC HL,SP ED72 15
SCF 37 4
SET 0,(HL) CBC6 15
SET 0,(IX+Д) DDCBXXC6 23
SET 0,(IY+Д) FDCBXXC6 23
SET 0,A CBC7 8
SET 0,B CBC0 8
SET 0,C CBC1 8
SET 0,D CBC2 8
SET 0,E CBC3 8
SET 0,H CBC4 8
SET 0,L CBC5 8
SET 1,(HL) CBCE 15
SET 1,(IX+Д) DDCBXXCE 23
SET 1,(IY+Д) FDCBXXCE 23
SET 1,A CBCF 8
SET 1,B CBC8 8
SET 1,C CBC9 8
SET 1,D CBCA 8
SET 1,E CBCB 8
SET 1,H CBCC 8
SET 1,L CBCD 8
SET 2,(HL) CBD6 15
SET 2,(IX+Д) DDCBXXD6 23
SET 2,(IY+Д) FDCBXXD6 23
SET 2,A CBD7 8
SET 2,B CBD0 8
SET 2,C CBD1 8
SET 2,D CBD2 8
SET 2,E CBD3 8
SET 2,H CBD4 8
SET 2,L CBD5 8
SET 3,(HL) CBDE 15
SET 3,(IX+Д) DDCBXXDE 23
SET 3,(IY+Д) FDCBXXDE 23
SET 3,A CBDF 8
SET 3,B CBD8 8
SET 3,C CBD9 8
SET 3,D CBDA 8
SET 3,E CBDB 8
SET 3,H CBDC 8
SET 3,L CBDD 8
SET 4,(HL) CBE6 15
SET 4,(IX+Д) DDCBXXE6 23
SET 4,(IY+Д) FDCBXXE6 23
SET 4,A CBE7 8
SET 4,B CBE0 8
SET 4,C CBE1 8
SET 4,D CBE2 8
SET 4,E CBE3 8
SET 4,H CBE4 8
SET 4,L CBE5 8
SET 5,(HL) CBEE 15
SET 5,(IX+Д) DDCBXXEE 23
SET 5,(IY+Д) FDCBXXEE 23
SET 5,A CBEF 8
SET 5,B CBE8 8
SET 5,C CBE9 8
SET 5,D CBEA 8
SET 5,E CBEB 8
SET 5,H CBEC 8
SET 5,L CBED 8
SET 6,(HL) CBF6 15
SET 6,(IX+Д) DDCBXXF6 23
SET 6,(IY+Д) FDCBXXF6 23
SET 6,A CBF7 8
SET 6,B CBF0 8
SET 6,C CBF1 8
SET 6,D CBF2 8
SET 6,E CBF3 8
SET 6,H CBF4 8
SET 6,L CBF5 8
SET 7,(HL) CBFE 15
SET 7,(IX+Д) DDCBXXFE 23
SET 7,(IY+Д) FDCBXXFE 23
SET 7,A CBFF 8
SET 7,B CBF8 8
SET 7,C CBF9 8
SET 7,D CBFA 8
SET 7,E CBFB 8
SET 7,H CBFC 8
SET 7,L CBFD 8
SLA (HL) CB26 15
SLA (IX+Д) DDCBXX26 23
SLA (IY+Д) FDCBXX26 23
SLA A CB27 8
SLA B CB20 8
SLA C CB21 8
SLA D CB22 8
SLA E CB23 8
SLA H CB24 8
SLA L CB25 8
SRA (HL) CB2E 15
SRA (IX+Д) DDCBXX2E 23
SRA (IY+Д) FDCBXX2E 23
SRA A CB2F 8
SRA B CB28 8
SRA C CB29 8
SRA D CB2A 8
SRA E CB2B 8
SRA H CB2C 8
SRA L CB2D 8
SRL (HL) CB3E 15
SRL (IX+Д) DDCBXX3E 23
SRL (IY+Д) FDCBXX3E 23
SRL A CB3F 8
SRL B CB38 8
SRL C CB39 8
SRL D CB3A 8
SRL E CB3B 8
SRL H CB3C 8
SRL L CB3D 8
SUB (HL) 96 7
SUB (IX+Д) DD96XX 19
SUB (IY+Д) FD96XX 19
SUB A 97 4
SUB B 90 4
SUB C 91 4
SUB D 92 4
SUB E 93 4
SUB H 94 4
SUB L 95 4
SUB N D6XX 7
XOR (HL) AE 7
XOR (IX+Д) DDAEXX 19
XOR (IY+Д) FDAEXX 19
XOR A AF 4
XOR B A8 4
XOR C A9 4
XOR D AA 4
XOR E AB 4
XOR H AC 4
XOR L AD 4
XOR N EEXX 7