Мнемоники 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