Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
microprocessor_kit_z80-book1:11 [2020-07-12 12:03] GreyWolf [Основной набор команд] |
microprocessor_kit_z80-book1:11 [2020-07-12 14:58] (текущий) GreyWolf [Команды DD CB / FD CB] |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
===== Основной набор команд ===== | ===== Основной набор команд ===== | ||
- | FIXME | ||
- | |||
| ^ По горизонтали: \\ старшая тетрада | | | ^ По горизонтали: \\ старшая тетрада | | ||
Строка 22: | Строка 20: | ||
^ 9 |ADD HL,BC|ADD HL,DE|ADD HL,HL|ADD HL,SP|LD C,C|LD E,C|LD L,C|LD A,C|ADC A,C|SBC A,C|XOR C|CP C|RET|EXX|JP (HL)|LD SP,HL| | ^ 9 |ADD HL,BC|ADD HL,DE|ADD HL,HL|ADD HL,SP|LD C,C|LD E,C|LD L,C|LD A,C|ADC A,C|SBC A,C|XOR C|CP C|RET|EXX|JP (HL)|LD SP,HL| | ||
^ A |LD A,(BC)|LD A,(DE)|LD HL,(nn)|LD A,(nn)|LD C,D|LD E,D|LD L,D|LD A,D|ADC A,D|SBC A,D|XOR D|CP D|JP Z,nn|JP C,nn|JP PE,nn|JP M,nn| | ^ A |LD A,(BC)|LD A,(DE)|LD HL,(nn)|LD A,(nn)|LD C,D|LD E,D|LD L,D|LD A,D|ADC A,D|SBC A,D|XOR D|CP D|JP Z,nn|JP C,nn|JP PE,nn|JP M,nn| | ||
- | ^ B |DEC BC|DEC DE|DEC HL|DEC SP|LD C,E|LD E,E|LD L,E|LD A,E|ADC A,E|SBC A,E|XOR E|CP E|**CB**|IN A,(n)|EX DE,HL|EI| | + | ^ B |DEC BC|DEC DE|DEC HL|DEC SP|LD C,E|LD E,E|LD L,E|LD A,E|ADC A,E|SBC A,E|XOR E|CP E|**[[#CB]]**|IN A,(n)|EX DE,HL|EI| |
^ C |INC C|INC E|INC L|INC A|LD C,H|LD E,H|LD L,H|LD A,H|ADC A,H|SBC A,H|XOR H|CP H|CALL Z,nn|CALL C,nn|CALL PE,nn|CALL M,nn| | ^ C |INC C|INC E|INC L|INC A|LD C,H|LD E,H|LD L,H|LD A,H|ADC A,H|SBC A,H|XOR H|CP H|CALL Z,nn|CALL C,nn|CALL PE,nn|CALL M,nn| | ||
- | ^ D |DEC C|DEC E|DEC L|DEC A|LD C,L|LD E,L|LD L,L|LD A,L|ADC A,L|SBC A,L|XOR L|CP L|CALL nn|**DD**|**ED**|**FD**| | + | ^ D |DEC C|DEC E|DEC L|DEC A|LD C,L|LD E,L|LD L,L|LD A,L|ADC A,L|SBC A,L|XOR L|CP L|CALL nn|**[[#DD]]**|**[[#ED]]**|**[[#FD]]**| |
^ E |LD C,n|LD E,n|LD L,n|LD A,n|LD C,(HL)|LD E,(HL)|LD L,(HL)|LD A,(HL)|ADC A,(HL)|SBC A,(HL)|XOR (HL)|CP (HL)|ADC A,n|SBC A,n|XOR n|CP n| | ^ E |LD C,n|LD E,n|LD L,n|LD A,n|LD C,(HL)|LD E,(HL)|LD L,(HL)|LD A,(HL)|ADC A,(HL)|SBC A,(HL)|XOR (HL)|CP (HL)|ADC A,n|SBC A,n|XOR n|CP n| | ||
^ F |RRCA|RRA|CPL|CCF|LD C,A|LD E,A|LD L,A|LD A,A|ADC A,A|SBC A,A|XOR A|CP A|RST 08H|RST 18H|RST 28H|RST 38H| | ^ F |RRCA|RRA|CPL|CCF|LD C,A|LD E,A|LD L,A|LD A,A|ADC A,A|SBC A,A|XOR A|CP A|RST 08H|RST 18H|RST 28H|RST 38H| | ||
+ | {{anchor:cb}} | ||
===== Команда CB ===== | ===== Команда CB ===== | ||
- | FIXME | + | |
+ | | ^ По горизонтали: \\ старшая тетрада | | ||
+ | ^ По вертикали: \\ младшая тетрада ^ ^ | ||
+ | |||
+ | | ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ A ^ B ^ C ^ D ^ E ^ F ^ | ||
+ | ^ 0 |RLC B|RL B|SLA B|-|BIT 0,B|BIT 2,B|BIT 4,B|BIT 6,B|RES 0,B|RES 2,B|RES 4,B|RES 6,B|SET 0,B|SET 2,B|SET 4,B|SET 6,B| | ||
+ | ^ 1 |RLC C|RL C|SLA C|-|BIT 0,C|BIT 2,C|BIT 4,C|BIT 6,C|RES 0,C|RES 2,C|RES 4,C|RES 6,C|SET 0,C|SET 2,C|SET 4,C|SET 6,C| | ||
+ | ^ 2 |RLC D|RL D|SLA D|-|BIT 0,D|BIT 2,D|BIT 4,D|BIT 6,D|RES 0,D|RES 2,D|RES 4,D|RES 6,D|SET 0,D|SET 2,D|SET 4,D|SET 6,D| | ||
+ | ^ 3 |RLC E|RL E|SLA E|-|BIT 0,E|BIT 2,E|BIT 4,E|BIT 6,E|RES 0,E|RES 2,E|RES 4,E|RES 6,E|SET 0,E|SET 2,E|SET 4,E|SET 6,E| | ||
+ | ^ 4 |RLC H|RL H|SLA H|-|BIT 0,H|BIT 2,H|BIT 4,H|BIT 6,H|RES 0,H|RES 2,H|RES 4,H|RES 6,H|SET 0,H|SET 2,H|SET 4,H|SET 6,H| | ||
+ | ^ 5 |RLC L|RL L|SLA L|-|BIT 0,L|BIT 2,L|BIT 4,L|BIT 6,L|RES 0,L|RES 2,L|RES 4,L|RES 6,L|SET 0,L|SET 2,L|SET 4,L|SET 6,L| | ||
+ | ^ 6 |RLC (HL)|RL (HL)|SLA (HL)|-|BIT 0,(HL)|BIT 2,(HL)|BIT 4,(HL)|BIT 6,(HL)|RES 0,(HL)|RES 2,(HL)|RES 4,(HL)|RES 6,(HL)|SET 0,(HL)|SET 2,(HL)|SET 4,(HL)|SET 6,(HL)| | ||
+ | ^ 7 |RLC A|RL A|SLA A|-|BIT 0,A|BIT 2,A|BIT 4,A|BIT 6,A|RES 0,A|RES 2,A|RES 4,A|RES 6,A|SET 0,A|SET 2,A|SET 4,A|SET 6,A| | ||
+ | ^ 8 |RRC B|RR B|SRA B|SRL B|BIT 1,B|BIT 3,B|BIT 5,B|BIT 7,B|RES 1,B|RES 3,B|RES 5,B|RES 7,B|SET 1,B|SET 3,B|SET 5,B|SET 7,B| | ||
+ | ^ 9 |RRC C|RR C|SRA C|SRL C|BIT l,C|BIT 3,C|BIT 5,C|BIT 7,C|RES l,C|RES 3,C|RES 5,C|RES 7,C|SET l,C|SET 3,C|SET 5,C|SET 7,C| | ||
+ | ^ A |RRC D|RR D|SRA D|SRL D|BIT 1,0|BIT 3,D|BIT 5,D|BIT 7,D|RES 1,D|RES 3,D|RES 5,D|RES 7,D|SET 1,D|SET 3,D|SET 5,D|SET 7,D| | ||
+ | ^ B |RRC E|RR E|SRA E|SRL E|BIT 1,E|BIT 3,E|BIT 5,E|BIT 7,E|RES 1,E|RES 3,E|RES 5,E|RES 7,E|SET 1,E|SET 3,E|SET 5,E|SET 7,E| | ||
+ | ^ C |RRC H|RR H|SRA H|SRL H|BIT l,H|BIT 3,H|BIT 5,H|BIT 7,H|RES l,H|RES 3,H|RES 5,H|RES 7,H|SET l,H|SET 3,H|SET 5,H|SET 7,H| | ||
+ | ^ D |RRC L|RR L|SRA L|SRL L|BIT l,L|BIT 3,L|BIT 3,L|BIT 7,L|RES l,L|RES 3,L|RES 5,L|RES 7,L|SET l,L|SET 3,L|SET 5,L|SET 7,L| | ||
+ | ^ E |RRC (HL)|RR (HL)|SRA (HL)|SRL (HL)|BIT 1,(HL)|BIT 3,(HL)|BIT 5,(HL)|BIT 7,(HL)|RES l,(HL)|RES 3,(HL)|RES 5,(HL)|RES 7,(HL)|SET 1,(HL)|SET 3,(HL)|SET 5,(HL)|SET 7,(HL)| | ||
+ | ^ F |RRC A|RR A|SRA A|SRL A|BIT l,A|BIT 3,A|BIT 5,A|BIT 7,A|RES l,A|RES 3,A|RES 5,A|RES 7,A|SET l,A|SET 3,A|SET 5,A|SET 7,A| | ||
+ | |||
+ | {{anchor:dd}} | ||
+ | {{anchor:fd}} | ||
+ | ===== Команды DD/FD ===== | ||
+ | |||
+ | |||
+ | Первый байт: | ||
+ | * DD: ii=IX | ||
+ | * FD: ii=IY | ||
+ | |||
+ | ^ Второй байт ^ Команда ^ | ||
+ | | 09 |ADD ii,BC| | ||
+ | | 19 |ADD ii,DE| | ||
+ | | || | ||
+ | | 21 |LD ii,nn| | ||
+ | | 22 |LD (nn),ii| | ||
+ | | || | ||
+ | | 23 |INC ii| | ||
+ | | || | ||
+ | | 29 |ADD ii,ii| | ||
+ | | || | ||
+ | | 2A |LD ii,(nn)| | ||
+ | | || | ||
+ | | 2B |DEC ii| | ||
+ | | 34 |INC (ii+d)| | ||
+ | | 35 |DEC (ii+d)| | ||
+ | | || | ||
+ | | 36 |LD (ii+d),n| | ||
+ | | || | ||
+ | | 39 |ADD ii,SP| | ||
+ | | || | ||
+ | | 46 |LD B,(ii+d)| | ||
+ | | 4E |LD C,(ii+d)| | ||
+ | | 56 |LD D,(ii+d)| | ||
+ | | 5E |LD E,(ii+d)| | ||
+ | | 66 |LD H,(ii+d)| | ||
+ | | 6E |LD L,(ii+d)| | ||
+ | | || | ||
+ | | 70 |LD (ii+d),B| | ||
+ | | 71 |LD (ii+d),C| | ||
+ | | 72 |LD (ii+d),D| | ||
+ | | 73 |LD (ii+d),E| | ||
+ | | 74 |LD (ii+d),H| | ||
+ | | 75 |LD (ii+d),L| | ||
+ | | 77 |LD (ii+d),A| | ||
+ | | || | ||
+ | | 7E |LD A,(ii+d)| | ||
+ | | || | ||
+ | | B6 |ADD A,(ii+d)| | ||
+ | | BE |ADC A,(ii+d)| | ||
+ | | 96 |SUB (ii+d)| | ||
+ | | 9E |SBC A,(ii+d)| | ||
+ | | A6 |AND (ii+d)| | ||
+ | | AE |XOR (ii+d)| | ||
+ | | B6 |OR (ii+d)| | ||
+ | | BE |CP (ii+d)| | ||
+ | | || | ||
+ | | CB |**[[#DD_CB_FD_CB|DD CB / FD CB]]**| | ||
+ | | || | ||
+ | | E1 |POP ii| | ||
+ | | E3 |EX (SP),ii| | ||
+ | | E5 |PUSH ii| | ||
+ | | E9 |JP (ii)| | ||
+ | | F9 |LD SP,ii| | ||
+ | |||
+ | |||
+ | {{anchor:ed}} | ||
+ | ===== Команда ED ===== | ||
+ | |||
+ | | ^ По горизонтали: \\ старшая тетрада | | ||
+ | ^ По вертикали: \\ младшая тетрада ^ ^ | ||
+ | |||
+ | | ^ 4 ^ 5 ^ 6 ^ 7 ^ A ^ B ^ | ||
+ | ^ 0|IN B,(C)|IN D,(C)|IN H,(C)|INF|LDI|LDIR| | ||
+ | ^ 1|OUT (C),B|OUT (C),D|OUT (C),H|-|CPI|CPIR| | ||
+ | ^ 2|SBC HL,BC|SBC HL,DE|SBC HL,HL|SBC HL,SP|INI|INIR| | ||
+ | ^ 3|LD (nn),BC|LD (nn),DE|-|LD (nn),SP|OUTI|OTIR| | ||
+ | ^ 4|NEG|-|-|-|-|-| | ||
+ | ^ 5|RETN|-|-|-|-|-| | ||
+ | ^ 6|IM 0|IM 1|-|-|-| | ||
+ | ^ 7|LD I,A|LD A,I|RRD|-|-|-| | ||
+ | ^ 8|IN C,(C)|IN E,(C)|IN|IN A,(C)|LDD|LDDR| | ||
+ | ^ 9|OUT (C),C|OUT (C),E|L,(C)|OUT (C),A|CPD|CPDR| | ||
+ | ^ A|ADC HL,BC|ADC HL,DE|OUT|ADC HL,SP|IND|INDR| | ||
+ | ^ B|LD BC,(nn)|LD DE,(nn)|(C),L|LD SP,(nn)|OUTD|OTDR| | ||
+ | ^ C|-|-|ADC|-|-|-| | ||
+ | ^ D|REТI|-|HL,HL|-|-|-| | ||
+ | ^ E|-|IM 2|-|-|-|-| | ||
+ | ^ F|LD R,A|LD A,R|RLD|-|-|-| | ||
+ | |||
+ | {{anchor:dd_cb_fd_cb}} | ||
+ | ===== Команды DD CB / FD CB ===== | ||
+ | |||
+ | ^Первый байт|DD: ii=IX \\ FD: ii=IY| | ||
+ | ^Второй байт|CB| | ||
+ | ^Третий байт|Смещение d| | ||
+ | |||
+ | ^Четвёртый байт^Команда^ | ||
+ | |06|RLC (ii+d)| | ||
+ | |0Е|RRC (ii+d)| | ||
+ | |16|RL (ii+d)| | ||
+ | |1E|RR (ii+d)| | ||
+ | |26|SLA (ii+d)| | ||
+ | |2E|SRA (ii+d)| | ||
+ | |3E|SRL (ii+d)| | ||
+ | |46|BIT 0,(ii+d)| | ||
+ | |4E|BIT 1,(ii+d)| | ||
+ | |56|BIT 2,(ii+d)| | ||
+ | |5E|BIT 3,(ii+d)| | ||
+ | |66|BIT 4,(ii+d)| | ||
+ | |6E|BIT 5,(ii+d)| | ||
+ | |76|BIT 6,(ii+d)| | ||
+ | |7E|BIT 7,(ii+d)| | ||
+ | |86|RES 0,(ii+d)| | ||
+ | |8E|RES 1,(ii+d)| | ||
+ | |96|RES 2,(ii+d)| | ||
+ | |9E|RES 3,(ii+d)| | ||
+ | |A6|RES 4,(ii+d)| | ||
+ | |AE|RES 5,(ii+d)| | ||
+ | |B6|RES 6,(ii+d)| | ||
+ | |BE|RES 7,(ii+d)| | ||
+ | |C6|SET 0,(ii+d)| | ||
+ | |CE|SET 1,(ii+d)| | ||
+ | |D6|SET 2,(ii+d)| | ||
+ | |DE|SET 3,(ii+d)| | ||
+ | |E6|SET 4,(ii+d)| | ||
+ | |EE|SET 5,(ii+d)| | ||
+ | |F6|SET 6,(ii+d)| | ||
+ | |FE|SET 7,(ii+d)| | ||