ТАБЛИЦА КОМАНД МИКРОПРОЦЕССОРА КР580ИК80 (КР580ВМ80А, Intel 8080) В приводимой таблице команд используются следующие обозначения: [ ] - регистр или регистровая пара; ■ - 2-й байт команды; [[ ]] - ячейка памяти, адресуемая регистровой парой; ■ ■ - 2-й и 3-й байты команлы; => и <= - направления передачи данных; FLAG - содержимое регистра признаков (РП); <=> - поменять местами; * - влияние команды на содержимое РП; <== и ==> - направление движения бит в байте; - - отсутствие влияния команды на содержимое РП; DATA[8] - байт данных; PCL - младший байт содержимого PC; DATA[16] - два байта данных; PCH - старший байт содержимого PC; ADDR[16] - 16-ти разрядный адрес ячейки памяти; ВУ - внешнее устройство. Таблица 1.1 Таблица 1.2 ┌─────────┬───────────────────┬──────────────────────┬────────────┬────────┐ ┌─────────┬───────────────────┬──────────────────────┬────────────┬────────┐ │ │ │ │ Содержимое │ │ │ │ │ │ Содержимое │ │ │ Код │ Мнемоника │ Действие │ регистра │ Число │ │ Код │ Мнемоника │ Действие │ регистра │ Число │ │ команды │ команды │ команды │ признаков │ тактов │ │ команды │ команды │ команды │ признаков │ тактов │ │ (hex) │ │ │ S Z AC P C │ │ │ (hex) │ │ │ S Z AC P C │ │ ├─────────┼───────────────────┼──────────────────────┼────────────┼────────┤ ├─────────┼───────────────────┼──────────────────────┼────────────┼────────┤ │ │ │ │ │ │ 2A ■ ■ │ LHLD ADDR[16] │ [L] <= ADDR[16] │ - - - - - │ 16 │ │ │ Команды пересылки данных │ │ │ │ │ │ [H] <= ADDR[16]+1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 7F │ MOV A,A │ [A] <= [A] │ - - - - - │ 5 │ │ 22 ■ ■ │ SHLD ADDR[16] │ ADDR[16] <= [L] │ - - - - - │ 16 │ │ 78 │ MOV A,B │ [A] <= [B] │ - - - - - │ 5 │ │ │ │ ADDR[16]+1 <= [H] │ │ │ │ 79 │ MOV A,C │ [A] <= [C] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 7A │ MOV A,D │ [A] <= [D] │ - - - - - │ 5 │ │ 0A │ LDAX B │ [A] <= [[BC]] │ - - - - - │ 7 │ │ 7B │ MOV A,E │ [A] <= [E] │ - - - - - │ 5 │ │ 1A │ LDAX D │ [A] <= [[DE]] │ - - - - - │ 7 │ │ 7C │ MOV A,H │ [A] <= [H] │ - - - - - │ 5 │ │ 02 │ STAX B │ [[BC]] <= [A] │ - - - - - │ 7 │ │ 7D │ MOV A,L │ [A] <= [L] │ - - - - - │ 5 │ │ 12 │ STAX D │ [[DE]] <= [A] │ - - - - - │ 7 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 47 │ MOV B,A │ [B] <= [A] │ - - - - - │ 5 │ │ EB │ XCHG │ [HL] <=> [DE] │ - - - - - │ 4 │ │ 40 │ MOV B,B │ [B] <= [B] │ - - - - - │ 5 │ │ F9 │ SPHL │ [SP] <= [HL] │ - - - - - │ 5 │ │ 41 │ MOV B,C │ [B] <= [C] │ - - - - - │ 5 │ │ E3 │ XTHL │ [L] <= [[SP]] │ - - - - - │ 18 │ │ 42 │ MOV B,D │ [B] <= [D] │ - - - - - │ 5 │ │ │ │ [H] <= [[SP]]+1 │ │ │ │ 43 │ MOV B,E │ [B] <= [E] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 44 │ MOV B,H │ [B] <= [H] │ - - - - - │ 5 │ │ C5 │ PUSH B │ [[SP]-1] <= [B] │ - - - - - │ 11 │ │ 45 │ MOV B,L │ [B] <= [L] │ - - - - - │ 5 │ │ │ │ [[SP]-2] <= [C] │ │ │ │ │ │ │ │ │ │ │ │ [SP] <= [SP]-2 │ │ │ │ 4F │ MOV C,A │ [C] <= [A] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 48 │ MOV C,B │ [C] <= [B] │ - - - - - │ 5 │ │ D5 │ PUSH D │ [[SP]-1] <= [D] │ - - - - - │ 11 │ │ 49 │ MOV C,C │ [C] <= [C] │ - - - - - │ 5 │ │ │ │ [[SP]-2] <= [E] │ │ │ │ 4A │ MOV C,D │ [C] <= [D] │ - - - - - │ 5 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ 4B │ MOV C,E │ [C] <= [E] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 4C │ MOV C,H │ [C] <= [H] │ - - - - - │ 5 │ │ E5 │ PUSH H │ [[SP]-1] <= [H] │ - - - - - │ 11 │ │ 4D │ MOV C,L │ [C] <= [L] │ - - - - - │ 5 │ │ │ │ [[SP]-2] <= [L] │ │ │ │ │ │ │ │ │ │ │ │ [SP] <= [SP]-2 │ │ │ │ 57 │ MOV D,A │ [D] <= [A] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 50 │ MOV D,B │ [D] <= [B] │ - - - - - │ 5 │ │ F5 │ PUSH PSW │ [[SP]-1] <= [A] │ - - - - - │ 11 │ │ 51 │ MOV D,C │ [D] <= [C] │ - - - - - │ 5 │ │ │ │ [[SP]-2] <= [FLAG] │ │ │ │ 52 │ MOV D,D │ [D] <= [D] │ - - - - - │ 5 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ 53 │ MOV D,E │ [D] <= [E] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 54 │ MOV D,H │ [D] <= [H] │ - - - - - │ 5 │ │ C1 │ POP B │ [C] <= [[SP]] │ - - - - - │ 11 │ │ 55 │ MOV D,L │ [D] <= [L] │ - - - - - │ 5 │ │ │ │ [B] <= [[SP]+1] │ │ │ │ │ │ │ │ │ │ │ │ [SP] <= [SP]+2 │ │ │ │ 5F │ MOV E,A │ [E] <= [A] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 58 │ MOV E,B │ [E] <= [B] │ - - - - - │ 5 │ │ D1 │ POP D │ [E] <= [[SP]] │ - - - - - │ 11 │ │ 59 │ MOV E,C │ [E] <= [C] │ - - - - - │ 5 │ │ │ │ [D] <= [[SP]+1] │ │ │ │ 5A │ MOV E,D │ [E] <= [D] │ - - - - - │ 5 │ │ │ │ [SP] <= [SP]+2 │ │ │ │ 5B │ MOV E,E │ [E] <= [E] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 5C │ MOV E,H │ [E] <= [H] │ - - - - - │ 5 │ │ E1 │ POP H │ [L] <= [[SP]] │ - - - - - │ 11 │ │ 5D │ MOV E,L │ [E] <= [L] │ - - - - - │ 5 │ │ │ │ [H] <= [[SP]+1] │ │ │ │ │ │ │ │ │ │ │ │ [SP] <= [SP]+2 │ │ │ │ 67 │ MOV H,A │ [H] <= [A] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 60 │ MOV H,B │ [H] <= [B] │ - - - - - │ 5 │ │ F1 │ POP PSW │ [FLAG] <= [[SP]] │ - - - - - │ 11 │ │ 61 │ MOV H,C │ [H] <= [C] │ - - - - - │ 5 │ │ │ │ [A] <= [[SP]+1] │ │ │ │ 62 │ MOV H,D │ [H] <= [D] │ - - - - - │ 5 │ │ │ │ [SP] <= [SP]+2 │ │ │ │ 63 │ MOV H,E │ [H] <= [E] │ - - - - - │ 5 │ │ │ │ │ │ │ │ 64 │ MOV H,H │ [H] <= [H] │ - - - - - │ 5 │ │ DB ■ │ IN адрес ВУ │ [A] <= [ВУ] │ - - - - - │ 10 │ │ 65 │ MOV H,L │ [H] <= [L] │ - - - - - │ 5 │ │ D3 ■ │ OUT адрес ВУ │ [ВУ] <= [A] │ - - - - - │ 10 │ │ │ │ │ │ │ │ │ │ │ │ │ 6F │ MOV L,A │ [L] <= [A] │ - - - - - │ 5 │ │ │ Арифметико-логические команды │ │ │ │ 68 │ MOV L,B │ [L] <= [B] │ - - - - - │ 5 │ │ │ │ │ │ │ 69 │ MOV L,C │ [L] <= [C] │ - - - - - │ 5 │ │ 87 │ ADD A │ [A] <= [A]+[A] │ * * * * * │ 4 │ │ 6A │ MOV L,D │ [L] <= [D] │ - - - - - │ 5 │ │ 80 │ ADD B │ [A] <= [A]+[B] │ * * * * * │ 4 │ │ 6B │ MOV L,E │ [L] <= [E] │ - - - - - │ 5 │ │ 81 │ ADD C │ [A] <= [A]+[C] │ * * * * * │ 4 │ │ 6C │ MOV L,H │ [L] <= [H] │ - - - - - │ 5 │ │ 82 │ ADD D │ [A] <= [A]+[D] │ * * * * * │ 4 │ │ 6D │ MOV L,L │ [L] <= [L] │ - - - - - │ 5 │ │ 83 │ ADD E │ [A] <= [A]+[E] │ * * * * * │ 4 │ │ │ │ │ │ │ │ 84 │ ADD H │ [A] <= [A]+[H] │ * * * * * │ 4 │ │ 7E │ MOV A,M │ [A] <= [[HL]] │ - - - - - │ 7 │ │ 85 │ ADD L │ [A] <= [A]+[L] │ * * * * * │ 4 │ │ 46 │ MOV B,M │ [B] <= [[HL]] │ - - - - - │ 7 │ │ │ │ │ │ │ │ 4E │ MOV C,M │ [C] <= [[HL]] │ - - - - - │ 7 │ │ 86 │ ADD M │ [A] <= [A]+[[HL]] │ * * * * * │ 7 │ │ 56 │ MOV D,M │ [D] <= [[HL]] │ - - - - - │ 7 │ │ C6 ■ │ ADI DATA[8] │ [A] <= [A]+DATA[8] │ * * * * * │ 7 │ │ 5E │ MOV E,M │ [E] <= [[HL]] │ - - - - - │ 7 │ │ │ │ │ │ │ │ 66 │ MOV H,M │ [H] <= [[HL]] │ - - - - - │ 7 │ │ 8F │ ADC A │ [A] <= [A]+[A]+C │ * * * * * │ 4 │ │ 6E │ MOV L,M │ [L] <= [[HL]] │ - - - - - │ 7 │ │ 88 │ ADC B │ [A] <= [A]+[B]+C │ * * * * * │ 4 │ │ │ │ │ │ │ │ 89 │ ADC C │ [A] <= [A]+[C]+C │ * * * * * │ 4 │ │ 77 │ MOV M,A │ [[HL]] <= [A] │ - - - - - │ 7 │ │ 8A │ ADC D │ [A] <= [A]+[D]+C │ * * * * * │ 4 │ │ 70 │ MOV M,B │ [[HL]] <= [B] │ - - - - - │ 7 │ │ 8B │ ADC E │ [A] <= [A]+[E]+C │ * * * * * │ 4 │ │ 71 │ MOV M,C │ [[HL]] <= [C] │ - - - - - │ 7 │ │ 8C │ ADC H │ [A] <= [A]+[H]+C │ * * * * * │ 4 │ │ 72 │ MOV M,D │ [[HL]] <= [D] │ - - - - - │ 7 │ │ 8D │ ADC L │ [A] <= [A]+[L]+C │ * * * * * │ 4 │ │ 73 │ MOV M,E │ [[HL]] <= [E] │ - - - - - │ 7 │ │ │ │ │ │ │ │ 74 │ MOV M,H │ [[HL]] <= [H] │ - - - - - │ 7 │ │ 8E │ ADC M │ [A] <= [A]+[[HL]]+C │ * * * * * │ 7 │ │ 75 │ MOV M,L │ [[HL]] <= [L] │ - - - - - │ 7 │ │ CE ■ │ ACI DATA[8] │ [A] <= [A]+DATA[8]+C │ * * * * * │ 7 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 3E ■ │ MVI A,DATA[8] │ [A] <= DATA[8] │ - - - - - │ 7 │ │ 97 │ SUB A │ [A] <= [A]-[A] │ 0 1 0 1 0 │ 4 │ │ 06 ■ │ MVI B,DATA[8] │ [B] <= DATA[8] │ - - - - - │ 7 │ │ 90 │ SUB B │ [A] <= [A]-[B] │ * * * * * │ 4 │ │ 0E ■ │ MVI C,DATA[8] │ [C] <= DATA[8] │ - - - - - │ 7 │ │ 91 │ SUB C │ [A] <= [A]-[C] │ * * * * * │ 4 │ │ 16 ■ │ MVI D,DATA[8] │ [D] <= DATA[8] │ - - - - - │ 7 │ │ 92 │ SUB D │ [A] <= [A]-[D] │ * * * * * │ 4 │ │ 1E ■ │ MVI E,DATA[8] │ [E] <= DATA[8] │ - - - - - │ 7 │ │ 93 │ SUB E │ [A] <= [A]-[E] │ * * * * * │ 4 │ │ 26 ■ │ MVI H,DATA[8] │ [H] <= DATA[8] │ - - - - - │ 7 │ │ 94 │ SUB H │ [A] <= [A]-[H] │ * * * * * │ 4 │ │ 2E ■ │ MVI L,DATA[8] │ [L] <= DATA[8] │ - - - - - │ 7 │ │ 95 │ SUB L │ [A] <= [A]-[L] │ * * * * * │ 4 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 36 ■ │ MVI M,DATA[8] │ [[HL]] <= DATA[8] │ - - - - - │ 10 │ │ 96 │ SUB M │ [A] <= [A]-[[HL]] │ * * * * * │ 7 │ │ │ │ │ │ │ │ D6 ■ │ SUI DATA[8] │ [A] <= [A]-DATA[8] │ * * * * * │ 7 │ │ 01 ■ ■ │ LXI B,DATA[16] │ [BC] <= DATA[16] │ - - - - - │ 10 │ │ │ │ │ │ │ │ 11 ■ ■ │ LXI D,DATA[16] │ [DE] <= DATA[16] │ - - - - - │ 10 │ │ 9F │ SBB A │ [A] <= [A]-[A]-C │ * * * * * │ 4 │ │ 21 ■ ■ │ LXI H,DATA[16] │ [HL] <= DATA[16] │ - - - - - │ 10 │ │ 98 │ SBB B │ [A] <= [A]-[B]-C │ * * * * * │ 4 │ │ 31 ■ ■ │ LXI SP,DATA[16] │ [SP] <= DATA[16] │ - - - - - │ 10 │ │ 99 │ SBB C │ [A] <= [A]-[C]-C │ * * * * * │ 4 │ │ │ │ │ │ │ │ 9A │ SBB D │ [A] <= [A]-[D]-C │ * * * * * │ 4 │ │ 3A ■ ■ │ LDA ADDR[16] │ [A] <= ADDR[16] │ - - - - - │ 13 │ │ 9B │ SBB E │ [A] <= [A]-[E]-C │ * * * * * │ 4 │ │ 32 ■ ■ │ STA ADDR[16] │ ADDR[16] <= [A] │ - - - - - │ 13 │ │ 9C │ SBB H │ [A] <= [A]-[H]-C │ * * * * * │ 4 │ └─────────┴───────────────────┴──────────────────────┴────────────┴────────┘ └─────────┴───────────────────┴──────────────────────┴────────────┴────────┘ Таблица 1.3 Таблица 1.4 ┌─────────┬───────────────────┬──────────────────────┬────────────┬────────┐ ┌─────────┬───────────────────┬──────────────────────┬────────────┬────────┐ │ │ │ │ Содержимое │ │ │ │ │ │ Содержимое │ │ │ Код │ Мнемоника │ Действие │ регистра │ Число │ │ Код │ Мнемоника │ Действие │ регистра │ Число │ │ команды │ команды │ команды │ признаков │ тактов │ │ команды │ команды │ команды │ признаков │ тактов │ │ (hex) │ │ │ S Z AC P C │ │ │ (hex) │ │ │ S Z AC P C │ │ ├─────────┼───────────────────┼──────────────────────┼────────────┼────────┤ ├─────────┼───────────────────┼──────────────────────┼────────────┼────────┤ │ 9D │ SBB L │ [A] <= [A]-[L]-C │ * * * * * │ 4 │ │ │ │ │ │ │ │ │ │ │ │ │ │ Команды ветвления (переходы) │ │ │ │ 9E │ SBB M │ [A] <= [A]-[[HL]]-C │ * * * * * │ 7 │ │ │ │ │ │ │ DE ■ │ SBI DATA[8] │ [A] <= [A]-DATA[8]-C │ * * * * * │ 7 │ │ C3 ■ ■ │ JMP ADDR[16] │ [PC] <= ADDR[16] │ - - - - - │ 10 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 3C │ INR A │ [A] <= [A]+1 │ * * * * - │ 5 │ │ C2 ■ ■ │ JNZ ADDR[16] │ Z=0 JMP ADDR[16] │ - - - - - │ 10 │ │ 04 │ INR B │ [A] <= [B]+1 │ * * * * - │ 5 │ │ CA ■ ■ │ JZ ADDR[16] │ Z=1 JMP ADDR[16] │ - - - - - │ 10 │ │ 0C │ INR C │ [A] <= [C]+1 │ * * * * - │ 5 │ │ │ │ │ │ │ │ 14 │ INR D │ [A] <= [D]+1 │ * * * * - │ 5 │ │ D2 ■ ■ │ JNC ADDR[16] │ C=0 JMP ADDR[16] │ - - - - - │ 10 │ │ 1C │ INR E │ [A] <= [E]+1 │ * * * * - │ 5 │ │ DA ■ ■ │ JC ADDR[16] │ C=1 JMP ADDR[16] │ - - - - - │ 10 │ │ 24 │ INR H │ [A] <= [H]+1 │ * * * * - │ 5 │ │ │ │ │ │ │ │ 2C │ INR L │ [A] <= [L]+1 │ * * * * - │ 5 │ │ E2 ■ ■ │ JPO ADDR[16] │ P=0 JMP ADDR[16] │ - - - - - │ 10 │ │ │ │ │ │ │ │ EA ■ ■ │ JPE ADDR[16] │ P=1 JMP ADDR[16] │ - - - - - │ 10 │ │ 34 │ INR M │ [[HL]] <= [[HL]]+1 │ * * * * - │ 10 │ │ │ │ │ │ │ │ │ │ │ │ │ │ F2 ■ ■ │ JP ADDR[16] │ S=0 JMP ADDR[16] │ - - - - - │ 10 │ │ 3D │ DCR A │ [A] <= [A]-1 │ * * * * - │ 5 │ │ FA ■ ■ │ JM ADDR[16] │ S=1 JMP ADDR[16] │ - - - - - │ 10 │ │ 05 │ DCR B │ [A] <= [B]-1 │ * * * * - │ 5 │ │ │ │ │ │ │ 0D │ DCR C │ [A] <= [C]-1 │ * * * * - │ 5 │ │ │ Команды ветвления (вызов подпрограмм) │ │ │ │ 15 │ DCR D │ [A] <= [D]-1 │ * * * * - │ 5 │ │ │ │ │ │ │ 1D │ DCR E │ [A] <= [E]-1 │ * * * * - │ 5 │ │ CD ■ ■ │ CALL ADDR[16] │ [[SP]-1] <= [PCH] │ - - - - - │ 17 │ │ 25 │ DCR H │ [A] <= [H]-1 │ * * * * - │ 5 │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ 2D │ DCR L │ [A] <= [L]-1 │ * * * * - │ 5 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ │ │ │ │ │ │ │ │ [PC] <= ADDR[16] │ │ │ │ 35 │ DCR M │ [[HL]] <= [[HL]]-1 │ * * * * - │ 10 │ │ │ │ │ │ │ │ │ │ │ │ │ │ C4 ■ ■ │ CNZ ADDR[16] │ Z=0 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 03 │ INX B │ [BC] <= [BC]+1 │ - - - - - │ 5 │ │ CC ■ ■ │ CZ ADDR[16] │ Z=1 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 13 │ INX D │ [DE] <= [DE]+1 │ - - - - - │ 5 │ │ │ │ │ │ │ │ 23 │ INX H │ [HL] <= [HL]+1 │ - - - - - │ 5 │ │ D4 ■ ■ │ CNC ADDR[16] │ C=0 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 33 │ INX SP │ [SP] <= [SP]+1 │ - - - - - │ 5 │ │ DC ■ ■ │ CC ADDR[16] │ C=1 CALL ADDR[16] │ - - - - - │ 11/17 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 0B │ DCX B │ [BC] <= [BC]-1 │ - - - - - │ 5 │ │ E4 ■ ■ │ CPO ADDR[16] │ P=0 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 1B │ DCX D │ [DE] <= [DE]-1 │ - - - - - │ 5 │ │ EC ■ ■ │ CPE ADDR[16] │ P=1 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 2B │ DCX H │ [HL] <= [HL]-1 │ - - - - - │ 5 │ │ │ │ │ │ │ │ 3B │ DCX SP │ [SP] <= [SP]-1 │ - - - - - │ 5 │ │ F4 ■ ■ │ CP ADDR[16] │ S=0 CALL ADDR[16] │ - - - - - │ 11/17 │ │ │ │ │ │ │ │ FC ■ ■ │ CM ADDR[16] │ S=1 CALL ADDR[16] │ - - - - - │ 11/17 │ │ 09 │ DAD B │ [HL] <= [HL]+[BC] │ - - - - * │ 10 │ │ │ │ │ │ │ 19 │ DAD D │ [HL] <= [HL]+[DE] │ - - - - * │ 10 │ │ │ Команды ветвления (возврат из подпрогр.) │ │ │ │ 29 │ DAD H │ [HL] <= [HL]+[HL] │ - - - - * │ 10 │ │ │ │ │ │ │ 39 │ DAD SP │ [HL] <= [HL]+[SP] │ - - - - * │ 10 │ │ C9 │ RET │ [PCL] <= [[SP]] │ - - - - - │ 10 │ │ │ │ │ │ │ │ │ │ [PCH] <= [[SP]+1] │ │ │ │ 27 │ DAA │ Десятичная коррекция │ * * * * * │ 4 │ │ │ │ [SP] <= [SP]+2 │ │ │ │ │ │ аккумулятора │ │ │ │ │ │ │ │ │ │ │ ───────────────── │ │ │ │ │ C0 │ RNZ │ Z=0 RET │ - - - - - │ 5/11 │ │ A7 │ ANA A │ [A] <= [A] c [A] Л │ * * * * 0 │ 4 │ │ C8 │ RZ │ Z=1 RET │ - - - - - │ 5/11 │ │ A0 │ ANA B │ [A] <= [A] c [B] о │ * * * * 0 │ 4 │ │ │ │ │ │ │ │ A1 │ ANA C │ [A] <= [A] c [C] г │ * * * * 0 │ 4 │ │ D0 │ RNC │ C=0 RET │ - - - - - │ 5/11 │ │ A2 │ ANA D │ [A] <= [A] c [D] . │ * * * * 0 │ 4 │ │ D8 │ RC │ C=1 RET │ - - - - - │ 5/11 │ │ A3 │ ANA E │ [A] <= [A] c [E] │ * * * * 0 │ 4 │ │ │ │ │ │ │ │ A4 │ ANA H │ [A] <= [A] c [H] И │ * * * * 0 │ 4 │ │ E0 │ RPO │ P=0 RET │ - - - - - │ 5/11 │ │ A5 │ ANA L │ [A] <= [A] c [L] │ * * * * 0 │ 4 │ │ E8 │ RPE │ P=1 RET │ - - - - - │ 5/11 │ │ │ │ │ │ │ │ │ │ │ │ │ │ A6 │ ANA M │ [A] <= [A] c [[HL[] │ * * * * 0 │ 7 │ │ F0 │ RP │ S=0 RET │ - - - - - │ 5/11 │ │ E6 ■ │ ANI DATA[8] │ [A] <= [A] c DATA[8] │ * * * * 0 │ 7 │ │ F8 │ RM │ S=1 RET │ - - - - - │ 5/11 │ │ │ ───────────────── │ │ │ │ │ │ │ │ │ │ │ AF │ XRA A │ [A] <= [A] c [A] И │ * 1 0 1 0 │ 4 │ │ │ ───────────────── │ │ │ │ │ │ XRA B │ [A] <= [A] c [B] с │ * * 0 * 0 │ 4 │ │ E9 │ PCHL │ [PC] <= [HL] │ - - - - - │ 5 │ │ A9 │ XRA C │ [A] <= [A] c [C] к │ * * 0 * 0 │ 4 │ │ │ ───────────────── │ │ │ │ │ AA │ XRA D │ [A] <= [A] c [D] . │ * * 0 * 0 │ 4 │ │ │ │ │ │ │ AB │ XRA E │ [A] <= [A] c [E] │ * * 0 * 0 │ 4 │ │ │ Команды ветвления (прерывания) │ │ │ │ AC │ XRA H │ [A] <= [A] c [H] И │ * * 0 * 0 │ 4 │ │ │ │ │ │ │ AD │ XRA L │ [A] <= [A] c [L] Л │ * * 0 * 0 │ 4 │ │ C7 │ RST 0 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ │ │ И │ │ │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ AE │ XRA M │ [A] <= [A] c [[HL]] │ * * 0 * 0 │ 7 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ EE ■ │ XRI DATA[8] │ [A] <= [A] c DATA[8] │ * * 0 * 0 │ 7 │ │ │ │ [PC] <= 0000H │ │ │ │ │ ───────────────── │ │ │ │ │ │ │ │ │ │ │ B7 │ ORA A │ [A] <= [A] c [A] Л │ * * 0 * 0 │ 4 │ │ CF │ RST 1 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ B0 │ ORA B │ [A] <= [A] c [B] о │ * * 0 * 0 │ 4 │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ B1 │ ORA C │ [A] <= [A] c [C] г │ * * 0 * 0 │ 4 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ B2 │ ORA D │ [A] <= [A] c [D] . │ * * 0 * 0 │ 4 │ │ │ │ [PC] <= 0008H │ │ │ │ B3 │ ORA E │ [A] <= [A] c [E] │ * * 0 * 0 │ 4 │ │ │ │ │ │ │ │ B4 │ ORA H │ [A] <= [A] c [H] И │ * * 0 * 0 │ 4 │ │ D7 │ RST 2 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ B5 │ ORA L │ [A] <= [A] c [L] Л │ * * 0 * 0 │ 4 │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ │ │ И │ │ │ │ │ │ [SP] <= [SP]-2 │ │ │ │ B6 │ ORA M │ [A] <= [A] c [[HL]] │ * * 0 * 0 │ 7 │ │ │ │ [PC] <= 0010H │ │ │ │ F6 ■ │ ORI DATA[8] │ [A] <= [A] c DATA[8] │ * * 0 * 0 │ 7 │ │ │ │ │ │ │ │ │ ───────────────── │ │ │ │ │ DF │ RST 3 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ BF │ CMP A │ [A] сравнить c [A] │ 0 1 0 1 0 │ 4 │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ B8 │ CMP B │ [A] сравнить c [B] │ * * * * * │ 4 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ B9 │ CMP C │ [A] сравнить c [C] │ * * * * * │ 4 │ │ │ │ [PC] <= 0018H │ │ │ │ BA │ CMP D │ [A] сравнить c [D] │ * * * * * │ 4 │ │ │ │ │ │ │ │ BB │ CMP E │ [A] сравнить c [E] │ * * * * * │ 4 │ │ E7 │ RST 4 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ BC │ CMP H │ [A] сравнить c [H] │ * * * * * │ 4 │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ BD │ CMP L │ [A] сравнить c [L] │ * * * * * │ 4 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ │ │ │ │ │ │ │ │ [PC] <= 0020H │ │ │ │ BE │ CMP M │ [A] сравн. c [[HL]] │ * * * * * │ 7 │ │ │ │ │ │ │ │ FE ■ │ CPI DATA[8] │ [A] сравн. c DATA[8] │ * * * * * │ 7 │ │ EF │ RST 5 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ │ ───────────────── │ │ │ │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ 2F │ CMA │ Инверсия [A] │ - - - - - │ 4 │ │ │ │ [SP] <= [SP]-2 │ │ │ │ │ ───────────────── │ │ │ │ │ │ │ [PC] <= 0028H │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Команды сдвига бит в байте │ │ │ │ F7 │ RST 6 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ │ │ │ │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ │ │ ┌─ ==> ───┐ │ │ │ │ │ │ [SP] <= [SP]-2 │ │ │ │ │ │ │ ┌───┐ │ ┌───┐ │ │ │ │ │ │ [PC] <= 0030H │ │ │ │ 07 │ RLC │ └─│ A │ <= => │ C │ │ - - - - * │ 4 │ │ │ │ │ │ │ │ │ │ └───┘ └───┘ │ │ │ │ FF │ RST 7 │ [[SP]-1] <= [PCH] │ - - - - - │ 11 │ │ │ │ ┌─ <== ───┐ │ │ │ │ │ │ [[SP]-2] <= [PCL] │ │ │ │ │ │ │ ┌───┐ │ ┌───┐ │ │ │ │ │ │ [SP] <= [SP]-2 │ │ │ │ 0F │ RRC │ └─│ A │ => => │ C │ │ - - - - * │ 4 │ │ │ │ [PC] <= 0038H │ │ │ │ │ │ └───┘ └───┘ │ │ │ │ │ │ │ │ │ │ │ ┌────── ==> ──────┐ │ │ │ │ │ Специальные команды │ │ │ │ │ │ │ ┌───┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ 17 │ RAL │ └─│ A │ <== │ C │─┘ │ - - - - * │ 4 │ │ FB │ EI │ Разрешить прерывание │ - - - - - │ 4 │ │ │ │ └───┘ └───┘ │ │ │ │ F3 │ DI │ Зпретить прерывание │ - - - - - │ 4 │ │ │ │ ┌────── <== ──────┐ │ │ │ │ 76 │ HLT │ Остановить работу │ - - - - - │ 4 │ │ │ │ │ ┌───┐ ┌───┐ │ │ │ │ │ 00 │ NOP │ Пустая команда │ - - - - - │ 4 │ │ 1F │ RAR │ └─│ A │ ==> │ C │─┘ │ - - - - * │ 4 │ │ 37 │ STC │ Флаг C в 1 │ - - - - 1 │ 4 │ │ │ │ └───┘ └───┘ │ │ │ │ 3F │ CMC │ Инвертировать Флаг С │ - - - - * │ 4 │ └─────────┴───────────────────┴──────────────────────┴────────────┴────────┘ └─────────┴───────────────────┴──────────────────────┴────────────┴────────┘ │ НЕКОТОРЫЕ ПРАВКИ: │ 8. Команда JZ ADDR[16] │ │ │ Z=0 JMP ADDR[16] исправлено на Z=1 JMP ADDR[16] │ │ 1. Изменены стрелки на "<=" и "=>". │ │ │ 2. Добавлено "<=>" (поменять местами HL и DE, команда XCHG). │ СОКРАЩЕНИЯ: │ │ 3. Добавлено "<==" и "==>" сдвиг бит в байте. │ │ │ │ ∙ Лог. И - Логическое И │ │ 4. Команды LXI: │ ∙ Иск. ИЛИ - Исключающее ИЛИ │ │ │ ∙ Лог. ИЛИ - Логическое ИЛИ │ │ ∙ [[BC]] <= DATA[16] исправлено на [BC] <= DATA[16] │ ∙ сравн. - сравнить │ │ ∙ [[DE]] <= DATA[16] исправлено на [DE] <= DATA[16] │ ∙ возврат из подпрогр. - возврат из подпрограмм │ │ ∙ [[HL]] <= DATA[16] исправлено на [HL] <= DATA[16] │ │ │ ∙ [[SP]] <= DATA[16] исправлено на [SP] <= DATA[16] │ ДОПОЛНЕНИЕ (команды: ANA, ANI, XRA, XRI, ORA, ORI): │ │ │ │ │ 5. Команды MOV: │ │ Логическое И │ Исключающие ИЛИ │ Логическое ИЛИ │ │ │ │ │ ────┬── │ ────┬── │ ────┬── │ │ │ ∙ MOV D,B - Код команды 58 исправлен на код 50 │ │ x y │ z │ x y │ z │ x y │ z │ │ │ ∙ MOV D,C - Код команды 59 исправлен на код 51 │ │ ────┼── │ ────┴── │ ────┴── │ │ │ ∙ MOV D,D - Код комвнды 5A исправлен на код 52 │ │ 0 0 │ 0 │ 0 0 0 │ 0 0 0 │ │ │ ∙ MOV D,E - Код команды 5B исправлен на код 53 │ │ 0 1 │ 0 │ 0 1 1 │ 0 1 1 │ │ │ ∙ MOV D,H - Код команды 5C исправлен на код 54 │ │ 1 0 │ 0 │ 1 0 1 │ 1 0 1 │ │ │ ∙ MOV D,L - Код команды 5D исправлен на код 55 │ │ 1 1 │ 1 │ 1 1 0 │ 1 1 1 │ │ │ │ │ │ 6. Продублированная команда ANA M, исправлена на XRA M │ x - вход 1, y - вход 2, z - выход. │ │ │ │ │ 7. Команда ORA M │ Оригинал таблицы: ЮТ для умелых рук, 1989г, n2, стр. 7, 10. │ │ [[HL]] <= [A] c [[HL]] исправлено на [A] <= [A] c [[HL]] │ Восстановлено: Ukraine (Украина). Демидов С.В. │