Личный сайт BitByByte: Статьи.
Логотип.
 Разделы сайта Cтатьи.
Сайт в разработке!

Статистика сайта.

Посещений за день: 35.
Посещений за месяц: 543.
Посещений за год: 6245.


Баннеры.

DMconnect
Maksy's PWS


Статистика в картинках.

likes counter


  • Главная.
  • Новости.
  • Программы.
  • Файлы.
  • Контакты.
  • Чат "Пиво".
  • Статьи.
  • Ссылки.
  • Гостевая.
  • Справочник по системе команд микропроцессора Intel 8080.

     Команды этого процессора бывают одно-, двух- и трехбайтными. В первом байте всегда содержится код операции.

     Обозначения.
     A, B, ..., L - названия 8-разрядных регистров.
     BC, DE, HL - названия регистровых пар, образующих 16-разрядные регистры.
     SP - 16-разрядный указатель стека.
     PSW - слово состояния программы, содержит регистр флагов.
    - двухбайтовый адрес.
     d8 - байт непосредственных данных.
     d16 - два байта непосредственных данных.
     pp - номер порта ввода-вывода.

    Команда Код Описание
    ADD A 87 A←(A) + (A)
    ADD B 80 A←(B) + (A)
    ADD C 81 A←(C) + (A)
    ADD D 82 A←(D) + (A)
    ADD E 83 A←(E) + (A)
    ADD H 84 A←(H) + (A)
    ADD L 85 A←(L) + (A)
    ADD M 86 A←Loc(HL) + (A)
    ADI d8 C6 A←d8 + (A)
    ADC A 8F A←(A) + (A) + CY
    ADC B 88 A←(B) + (A) + CY
    ADC C 89 A←(C) + (A) + CY
    ADC D 8A A←(D) + (A) + CY
    ADC E 8B A←(E) + (A) + CY
    ADC H 8C A←(H) + (A) + CY
    ADC L 8D A←(L) + (A) + CY
    ADC M 8E A←Loc(HL) + (A) + CY
    ACI d8 CE A←d8 + (A) + CF
    ANA A A7 Проверка A
    ANA B A0 Логическое И B с A
    ANA C A1 Логическое И C с A
    ANA D A2 Логическое И D с A
    ANA E A3 Логическое И E с A
    ANA H A4 Логическое И H с A
    ANA L A5 Логическое И L с A
    ANA M A6 Логическое И Loc(HL) с A
    ANI d8 E6 Логическое И непосредственные данные с A
    CALL a16 CD Передать управление подпрограмме по адресу a16
    CZ a16 CC Вызвать подпрограмму по адресу a16, если нуль
    СNZ a16 C4 То же, если не нуль
    СP a16 F4 То же, если плюс
    СM a16 FC То же, если минус
    CC a16 DC То же, если перенос
    CNC a16 D4 То же, если нет переноса
    CPE a16 EC То же, если чётно
    CPO a16 E4 То же, если нечётно
    CMA 2F Инвертировать A
    CMC 3F Инвертировать перенос
    CMP A BF Установить флаг FZ
    CMP B B8 Сравнить A с B
    CMP C B9 Сравнить A с C
    CMP D BA Сравнить A с D
    CMP E BB Сравнить A с E
    CMP H BC Сравнить A с H
    CMP L BD Сравнить A с L
    CMP M BE Сравнить A с Loc(HL)
    CPI d8 FE Сравнить A с непосредственными данными, заданными в команде
    DAA 27 Десятичная коррекция аккумулятора (совершенно бесполезная команда. Я так и ни разу ей и не воспользовался:)
    DAD B 09 Сложить BC с HL
    DAD D 19 Сложить DE с HL
    DAD H 29 Сложить HL с HL (удвоение HL)
    DAD SP 39 Сложить SP с HL
    DCR A 3D A←(A) - 1 (декремент A)
    DCR B 05 B←(B) - 1
    DCR C 0D C←(C) - 1
    DCR D 15 D←(D) - 1
    DCR E 1D E←(E) - 1
    DCR H 25 H←(H) - 1
    DCR L 2D L←(L) - 1
    DCR M 35 Loc (HL)←(Loc(HL)) -1
    DCX B 0B BC←(BC) - 1
    DCX D 1B DE←(DE) -1
    DCX H 2B HL←(HL) - 1
    DCX SP 3B SP←(SP) -1
    DI F3 Запретить прерывания
    EI FB Разрешить прерывания
    HLT 76 Останов процессора
    IN pp DB Ввести данные из порта pp
    INR A 3C A←(A) + 1 (инкрементировать A)
    INR B 04 Инкрементировать B
    INR C 0C Инкрементировать C
    INR D 14 Инкрементировать D
    INR E 1C Инкрементировать E
    INR H 24 Инкрементировать H
    INR L 2C Инкрементировать L
    INR M 34 Инкрементировать содержимое Loc(HL)
    INX B 03 Инкрементировать BС
    INX D 13 Инкрементировать DE
    INX H 23 Инкрементировать HL
    INX SP 33 Инкрементировать SP
    JMP a16 C3 Перейти по адресу a16
    JZ a16 CA То же, если нуль
    JNZ a16 C2 То же, если не нуль
    JP a16 F2 То же, если плюс
    JM a16 FA То же, если минус
    JC a16 DA То же, если перенос
    JNC a16 D2 То же, если нет переноса
    JPE a16 EA Перейти по адресу a16, если паритет чётный
    JPO a16 E2 Перейти по адресу a16, если паритет нечётный
    LDA a16 3A Загрузить A из ячейки с адресом a16
    LDAX B 0A Загрузить A из ячейки с адресом Loc(BC)
    LDAX D 1A Загрузить A из ячейки с адресом Loc(DE)
    LHLD a16 2A Загрузить в HL содержимое ячейки с адресом a16
    LXI B,d16 01 Загрузить в BC непосредственные данные d16
    LXI H,d16 21 Загрузить в HL непосредственные данные d16
    LXI SP,d16 31 Загрузить в SP непосредственные данные d16
    MOV A,A 7F Переслать из A в A
    MOV A,B 78 Переслать из B в A (B←(A) )
    MOV A,C 79 Переслать из C в A
    MOV A,D 7A Переслать из D в A
    MOV A,E 7B Переслать из E в A
    MOV A,H 7C Переслать из H в A
    MOV A,L 7D Переслать из L в A
    MOV A,M 7E Переслать из Loc(HL) в A
    MOV B,A 47 Переслать из A в B
    MOV B,B 40 Переслать из B в B (ещё одна странная команда)
    MOV B,C 41 Переслать из C в B
    MOV B,D 42 Переслать из D в B
    MOV B,E 43 Переслать из E в B
    MOV B,H 44 Переслать из H в B
    MOV B,L 45 Переслать из L в B
    MOV B,M 46 Переслать из Loc(HL) в B
    MOV C,A 4F Переслать из A в C
    MOV C,B 48 Переслать из B в C
    MOV C,C 49 Переслать из C в C
    MOV C,D 4A Переслать из D в C
    MOV C,E 4B Переслать из E в C
    MOV C,H 4C Переслать из H в C
    MOV C,L 4D Переслать из L в C
    MOV C,M 4E Переслать из Loc(HL) в C
    MOV D,A 57 Переслать из A в D
    MOV D,B 50 Переслать из B в D
    MOV D,C 51 Переслать из C в D
    MOV D,D 52 Переслать из D в D
    MOV D,E 53 Переслать из E в D
    MOV D,H 54 Переслать из H в D
    MOV D,L 55 Переслать из L в D
    MOV D,M 56 Переслать из Loc(HL) в D
    MOV E,A 5F Переслать из A в E
    MOV E,B 58 Переслать из B в E
    MOV E,C 59 Переслать из C в E
    MOV E,D 5A Переслать из D в E
    MOV E,E 5B Переслать из E в E
    MOV E,H 5C Переслать из H в E
    MOV E,L 5D Переслать из L в E
    MOV E,M 5E Переслать из Loc(HL) в E
    MOV H,A 67 Переслать из A в H
    MOV H,B 60 Переслать из B в H
    MOV H,C 61 Переслать из C в H
    MOV H,D 62 Переслать из D в H
    MOV H,E 63 Переслать из E в H
    MOV H,H 64 Переслать из H в H
    MOV H,L 65 Переслать из L в H
    MOV H,M 66 Переслать из Loc(HL) в H
    MOV L,A 6F Переслать из A в L
    MOV L,B 68 Переслать из B в L
    MOV L,C 69 Переслать из C в L
    MOV L,D 6A Переслать из D в L
    MOV L,E 6B Переслать из E в L
    MOV L,H 6C Переслать из H в L
    MOV L,L 6D Переслать из L в L
    MOV L,M 6E Переслать из Loc(HL) в L
    MOV M,A 77 Переслать из A в M
    MOV M,B 70 Переслать из B в M
    MOV M,C 71 Переслать из C в M
    MOV M,D 72 Переслать из D в M
    MOV M,E 73 Переслать из E в M
    MOV M,H 74 Переслать из H в M
    MOV M,L 75 Переслать из L в M
    MVI A,d8 3E Переслать d8 в A
    MVI B,d8 06 Переслать d8 в B
    MVI C,d8 0E Переслать d8 в C
    MVI D,d8 16 Переслать d8 в D
    MVI E,d8 1E Переслать d8 в E
    MVI H,d8 26 Переслать d8 в H
    MVI L,d8 2E Переслать d8 в L
    MVI M,d8 36 Переслать d8 в Loc(HL)
    NOP 00 Нет операции
    ORA A B7 Проверить A и сбросить перенос
    ORA B B0 Логичеcкая операция A ИЛИ B
    ORA C B1 Логичеcкая операция A ИЛИ C
    ORA D B2 Логичеcкая операция A ИЛИ D
    ORA E B3 Логичеcкая операция A ИЛИ E
    ORA H B4 Логичеcкая операция A ИЛИ H
    ORA L B5 Логичеcкая операция A ИЛИ L
    ORA M B6 Логичеcкая операция A ИЛИ M
    ORI d8 F6 Логичеcкая операция A ИЛИ d8
    OUT pp D3 Записать A в порт pp
    PCHL E9 Передать управление по адресу в HL
    POP B C1 Извлечь слово из стека в BC
    POP D D1 Извлечь слово из стека в DE
    POP H E1 Извлечь слово из стека в HL
    POP PSW F1 Извлечь слово из стека в PSW
    PUSH B C5 Поместить в стек содержимое BC
    PUSH D D5 Поместить в стек содержимое DE
    PUSH H E5 Поместить в стек содержимое HL
    PUSH PSW F5 Поместить в стек содержимое PSW
    RAL 17 Циклический сдвиг CY + A влево
    RAR 1F Циклический сдвиг CY + A вправо
    RLC 07 Сдвинуть A влево на один разряд с переносом
    RRC 0F Сдвинуть A вправо на один разряд с переносом
    RIM 20 Считать маску прерывания (только в 8085)
    RET C9 Возврат из подпрограммы
    RZ C8 Возврат из подпрограммы, если FZ=0
    RNZ C0 Возврат из подпрограммы, если FZ=1
    RP F0 Возврат из подпрограммы, если FP=1
    RM F8 Возврат из подпрограммы, если FP=0
    RC D8 Возврат из подпрограммы, если FC=1
    RNC D0 Возврат из подпрограммы, если FC=0
    RPE E8 Возврат из подпрограммы, если паритет чётный
    RPO E0 Возврат из подпрограммы, если паритет нечётный
    RST 0 C7 Запуск программы с адреса 0
    RST 1 CF Запуск программы с адреса 8h
    RST 2 D7 Запуск программы с адреса 10h
    RST 3 DF Запуск программы с адреса 18h
    RST 4 E7 Запуск программы с адреса 20h
    RST 5 EF Запуск программы с адреса 28h
    RST 6 F7 Запуск программы с адреса 30h
    RST 7 FF Запуск программы с адреса 38h
    SIM 30 Установить маску прерывания (только в 8085)
    SPHL F9 Загрузить SP из HL
    SHLD a16 22 Записать HL по адресу a16
    STA a16 32 Записать A по адресу a16
    STAX B 02 Записать A по адресу Loc(BC)
    STAX D 12 Записать A по адресу Loc(DE)
    STC 37 Установить флаг переноса (CF=1)
    SUB A 97 Вычесть А из А (очистить А)
    SUB B 90 Вычесть B из А
    SUB C 91 Вычесть C из А
    SUB D 92 Вычесть D из А
    SUB E 93 Вычесть E из А
    SUB H 94 Вычесть H из А
    SUB L 95 Вычесть L из А
    SUB M 96 Вычесть M из А
    SUI d8 D6 Вычесть d8 из А
    SBB A 9F Вычесть А из А (очистить А)
    SBB B 98 Вычесть c заёмом B из А
    SBB C 99 Вычесть c заёмом C из А
    SBB D 9A Вычесть c заёмом D из А
    SBB E 9B Вычесть c заёмом E из А
    SBB H 9C Вычесть c заёмом H из А
    SBB L 9D Вычесть c заёмом L из А
    SBB M 9E Вычесть c заёмом M из А
    SBI d8 DE Вычесть c заемом d8 из А
    XCHG EB Обмен содержимым DE и HL
    XTHL E3 Обмен содержимого вершины стека с содержимым HL
    XRA A AF Исключающее ИЛИ A с A (очистка A)
    XRA B A8 Исключающее ИЛИ B с A
    XRA C A9 Исключающее ИЛИ C с A
    XRA D AA Исключающее ИЛИ D с A
    XRA E AB Исключающее ИЛИ E с A
    XRA H AC Исключающее ИЛИ H с A
    XRA L AD Исключающее ИЛИ L с A
    XRA M AE Исключающее ИЛИ Loc(HL) с A
    XRI d8 EE Исключающее ИЛИ d8 с A

     Команды с кодами 08, 10, 18, 38, CB , D 9, DD , ED и FD в системе команд МП 8080 отсутствуют.

    >>

    BitByByte, 2000г. (2025).