Мнемоники Intel 8080

Пересылка данных
Мнемоника Полное название Описание Пример
MOV
Move Перемещение данных между регистрами или регистром и памятью.
MOV A, B
— скопировать значение из регистра B в аккумулятор A
MVI
Move Immediate Загрузка 8-битного значения в регистр или память.
MVI A, 25
— загрузить число 25 непосредственно в A
LDA
Load Accumulator Загрузка в аккумулятор (A) из памяти по 16-битному адресу.
LDA 3000h
— прочитать байт из памяти по адресу 3000h в A
LDAX
Load Accumulator Indirect Загрузка в A из памяти через пару регистров (BC или DE).
LDAX B
— загрузить A из памяти по адресу, содержащемуся в паре BC
STA
Store Accumulator Сохранение A в память по 16-битному адресу.
STA 3000h
— записать содержимое A по адресу 3000h
STAX
Store Accumulator Indirect Сохранение A в память через пару регистров (BC или DE).
STAX D
— сохранить A по адресу из пары DE
LHLD
Load H-L Direct Загрузка 16-битного значения из памяти в пару HL.
LHLD 3000h
— H ← [3001h], L ← [3000h]
SHLD
Store H-L Direct Сохранение пары HL в память по 16-битному адресу.
SHLD 3000h
— записать H в [3001h], L в [3000h]
LXI
Load Extended Immediate Загрузка 16-битного значения в пару регистров (BC, DE, HL) или SP.
LXI H, 3000h
— установить HL = 3000h
XCHG
Exchange Обмен содержимого HL и DE.
XCHG
— поменять местами регистры HL и DE
Арифметические и логические операции
Мнемоника Полное название Описание Пример
ADD
Add Сложение с аккумулятором (A).
ADD B
— A ← A + B (например, A=5, B=3 → A=8)
ADC
Add with Carry Сложение с A с учётом переноса.
ADC C
— A ← A + C + CY (для сложения многобайтовых чисел)
SUB
Subtract Вычитание из A.
SUB E
— A ← A – E
SBB
Subtract with Borrow Вычитание из A с учётом займа.
SBB D
— A ← A – D – CY
INR
Increment Увеличение регистра или памяти на 1.
INR M
— увеличить байт в памяти по адресу HL на 1
DCR
Decrement Уменьшение регистра или памяти на 1.
DCR L
— L ← L – 1
INX
Increment Register Pair Увеличение пары регистров (BC, DE, HL) или SP на 1.
INX H
— HL ← HL + 1 (часто в циклах)
DCX
Decrement Register Pair Уменьшение пары регистров (BC, DE, HL) или SP на 1.
DCX B
— BC ← BC – 1
ANA
AND Accumulator Логическое И с A.
ANA B
— A ← A AND B (битовая маска)
ORA
OR Accumulator Логическое ИЛИ с A.
ORA A
— установить флаг Z, если A=0 (проверка без изменения)
XRA
Exclusive OR Accumulator Логическое исключающее ИЛИ с A.
XRA A
— A ← 0 (стандартный способ обнуления аккумулятора)
CMP
Compare Сравнение с A (установка флагов).
CMP B
— сравнить A и B, установить флаги (для условных переходов)
RLC
Rotate Left Carry Циклический сдвиг A влево через флаг переноса.
RLC
— бит 7 → CY, CY → бит 0
RRC
Rotate Right Carry Циклический сдвиг A вправо через флаг переноса.
RRC
— бит 0 → CY, CY → бит 7
RAL
Rotate Accumulator Left Сдвиг A влево через флаг переноса.
RAL
— CY ← бит 7, A ← A << 1, бит 0 ← старый CY
RAR
Rotate Accumulator Right Сдвиг A вправо через флаг переноса.
RAR
— CY ← бит 0, A ← A >> 1, бит 7 ← старый CY
DAD
Double Add Сложение пары регистров (BC, DE, SP) с HL.
DAD B
— HL ← HL + BC (16-битное сложение)
CMA
Complement Accumulator Инверсия содержимого A.
CMA
— инвертировать все биты в A (0101 → 1010)
DAA
Decimal Adjust Accumulator Десятичная корректировка A для BCD.
DAA
— после сложения BCD-чисел приводит A к корректному виду
STC
Set Carry Установка флага переноса.
STC
— CY ← 1
CMC
Complement Carry Инверсия флага переноса.
CMC
— CY ← NOT CY
Управление потоком
Мнемоника Полное название Описание Пример
JMP
Jump Безусловный переход по адресу.
JMP 1000h
— передать управление на адрес 1000h
JZ
Jump if Zero Переход, если флаг нуля = 1.
JZ DONE
— перейти на метку DONE, если результат предыдущей операции был 0
JNZ
Jump if Not Zero Переход, если флаг нуля = 0.
JNZ LOOP
— продолжить цикл, пока счётчик не обнулится
JC
Jump if Carry Переход, если флаг переноса = 1.
JC OVERFLOW
— обработка переполнения
JNC
Jump if No Carry Переход, если флаг переноса = 0.
JNC OK
— продолжить, если переноса не было
JP
Jump if Positive Переход, если флаг знака = 0.
JP POS
— переход, если число положительное
JM
Jump if Minus Переход, если флаг знака = 1.
JM NEG
— переход, если число отрицательное
JPE
Jump if Parity Even Переход, если флаг чётности = 1.
JPE EVEN
— переход при чётном числе установленных битов
JPO
Jump if Parity Odd Переход, если флаг чётности = 0.
JPO ODD
— переход при нечётной чётности
CALL
Call Вызов подпрограммы.
CALL PRINT
— вызвать подпрограмму вывода
RET
Return Возврат из подпрограммы.
RET
— вернуться в точку вызова
CZ
Call if Zero Вызов подпрограммы, если флаг нуля = 1.
CZ EXIT
— вызвать EXIT, если результат = 0
CNZ
Call if Not Zero Вызов подпрограммы, если флаг нуля = 0.
CNZ CONT
— вызвать CONT, если результат ≠ 0
CC
Call if Carry Вызов подпрограммы, если флаг переноса = 1.
CC HANDLE_CARRY
— обработка переноса
CNC
Call if No Carry Вызов подпрограммы, если флаг переноса = 0.
CNC NEXT
— продолжить, если переноса не было
CP
Call if Positive Вызов подпрограммы, если флаг знака = 0.
CP POS_PROC
— вызов обработчика положительного числа
CM
Call if Minus Вызов подпрограммы, если флаг знака = 1.
CM NEG_PROC
— вызов обработчика отрицательного числа
CPE
Call if Parity Even Вызов подпрограммы, если флаг чётности = 1.
CPE EVEN_PROC
— вызов при чётной чётности
CPO
Call if Parity Odd Вызов подпрограммы, если флаг чётности = 0.
CPO ODD_PROC
— вызов при нечётной чётности
RST
Restart Переход к фиксированному адресу (вектор прерывания).
RST 1
— вызов подпрограммы по адресу 0008h (часто для отладки)
PCHL
Load Program Counter with HL Переход по адресу в HL.
PCHL
— передать управление по адресу, записанному в HL

Работа со стеком

Мнемоника Полное название Описание Пример
PUSH
Push Помещение данных в стек.
PUSH H
— сохранить HL в стеке (HL → [SP-1:SP-2], SP ← SP-2)
POP
Pop Извлечение данных из стека.
POP B
— извлечь слово из стека в пару BC, SP ← SP+2
XTHL
Exchange Top of Stack with HL Обмен содержимого HL с вершиной стека.
XTHL
— поменять местами HL и слово по адресу [SP]
SPHL
Store HL to Stack Pointer Копирование HL в указатель стека (SP).
SPHL
— SP ← HL (установить новую вершину стека)

Управление и ввод-вывод

Мнемоника Полное название Описание Пример
NOP
No Operation Пустая операция.
NOP
— ничего не делать (часто для задержки или выравнивания)
HLT
Halt Остановка процессора.
HLT
— остановить выполнение до внешнего прерывания или сброса
IN
Input Ввод данных из порта в A.
IN 01h
— прочитать байт с порта 01h в A (например, с переключателей)
OUT
Output Вывод данных из A в порт.
OUT 02h
— отправить A на порт 02h (например, на светодиоды)
EI
Enable Interrupts Разрешение прерываний.
EI
— разрешить маскируемые прерывания
DI
Disable Interrupts Запрет прерываний.
DI
— запретить маскируемые прерывания
Последнее изменение: Суббота, 11 октября 2025, 14:14