- •Лабораторная работа №2 Программная модель компьютера
- •Основные понятия
- •Организация памяти
- •Программирование на Ассемблере для процессора Intel 8086 Понятие языка Ассемблера
- •Формат операторов Ассемблера
- •Система команд процессора Intel 8086
- •Команды пересылки данных
- •Арифметические операции
- •Логические операции
- •Команды условного перехода
- •Команды передачи управления
- •Команды обработки строк
- •Команды прерывания
- •Команды управления состоянием процессора
- •Режимы адресации процессора Intel 8086
Команды пересылки данных
IN - ввод байта или слова
LAHF - загрузка регистра ah из регистра флагов
LDS - загрузка указателя с использованием регистра ds
LEA - загрузка исполнительного адреса
LES - загрузка указателя с использованием регистра es
MOV - пересылка байта или слова
OUT - загрузка в порт
POP - извлечение слова из стека
POPF - извлечение слова из стека в регистр флагов
PUSH - включение слова в стек
PUSHF - включение регистра флагов в стек
SAHF - загрузка регистра ah в регистр флагов
XCHG - обмен значениями
Арифметические операции
ADC - сложение с переносом
ADD - сложение
CBW - преобразование байта в слово
CMP - сравнение
CWD - преобразование слова в двойное слово
DEC - декремент
DIV - деление без учета знака
IDIV - деление с учетом знака
IMUL - умножение с учетом знака
INC - инкремент
MUL - умножение без учета знака
NEG - получение дополнительного кода
SBB - вычитание с заемом
SUB - вычитание
Логические операции
AND - логическое умножение
NOT - логическое отрицание
OR - логическое сложение
RCL - циклический сдвиг влево через CF
RCR - циклический сдвиг вправо через CF
ROL - циклический сдвиг влево
ROR - циклический сдвиг вправо
SAL - арифметический сдвиг влево
SAR - арифметический сдвиг вправо
SHL - логический сдвиг влево
SHR - логический сдвиг вправо
TEST - тест
XOR - исключающее ИЛИ
Команды условного перехода
JA - переход если выше
JAE - переход если выше или равно
JB - переход если ниже
JBE - переход если ниже или равно
JC - переход если перенос
JCXZ - переход если регистр CX равен 0
JE - переход если равно
JG - переход если больше
JGE - переход если больше или равно
JL - переход если меньше
JLE - переход если меньше или равно
JNA - переход если не выше
JNAE - переход если не выше и не равно
JNB - переход если не ниже
JNBE - переход если не ниже и не равно
JNC - переход если нет переноса
JNE - переход если не равно
JNG - переход если не больше
JNGE - переход если не больше и не равно
JNL - переход если не меньше
JNLE - переход если не меньше и не равно
JNO - переход если нет переполнения
JNP - переход если нечетно
JNS - переход если положительный результат
JNZ - переход если не ноль
JO - переход если есть переполнение
JP - переход если четно
JPE - переход если четно
JPO - переход если нечетно
JS - переход если отрицательный результат
JZ - переход если ноль
LOOP - переход по счетчику
LOOPE - переход пока равно
LOOPNE - переход пока не равно
LOOPNZ - переход пока не ноль
LOOPZ - переход пока ноль
Команды передачи управления
CALL - вызов подпрограммы
JMP - безусловный переход
RET - возврат из подпрограммы
Команды обработки строк
CMPS - сравнение строк
CMPSB - сравнение строк из байтов
CMPSW - сравнение строк из слов
LODS - загрузка строки
LODSB - загрузка строки из байтов
LODSW - загрузка строки из слов
MOVS - пересылка строки
MOVSB - пересылка строки из байтов
MOVSW - пересылка строки из слов
REP - повтор
REPE - повторять пока равно
REPNE - повторять пока не равно
REPNZ - повторять пока не ноль
SCAS - просмотр строки
SCASB - просмотр строки из байтов
SCASW - просмотр строки из слов
STOS - запись в строку
STOSB - запись в строку из байтов
STOSW - запись в строку из слов