Описание процессора i8086 для программиста


Содержание


Общие сведения
Представление информации
Двоичные числа без знака
Двоичные числа со знаком
Символьная информация
Двоично-десятичные числа
Физическая память
Сегментация
Сегментация - часть 2
Стек
Регистры микропроцессора
Регистры общего назначения
Сегментные регистры
Регистр флагов
Регистр флагов - часть 2
Указатель инструкции
Выполнение инструкций
Адресация операндов
Регистровые операнды
Операнды в памяти
Операнды в памяти - часть 2
Непосредственные операнды
Адреса переходов
Адреса переходов - часть 2
Формат кода команды
Формат кода команды - часть 2
Префиксы
Код операции
Байт ModRegR/M
Байт ModRegR/M - часть 2
Отклонение
Непосредственный операнд
Инициализация процессора
Источники и причины прерываний
Внешние прерывания
Немаскируемые прерывания
Маскируемые прерывания
Исключения
Прерывание по ошибке деления
Прерывание по точке останова
Прерывание по переполнению
Прерывание по трассировке
Программные прерывания
Таблица векторов прерываний
Действия микропроцессора по обработке прерывания
Приоритет прерываний
Идентификация источников прерываний
Идентификация источников прерываний - часть 2
Система команд
Машинные инструкции
AAA – коррекция сложения двоично-десятичных распакованных чисел
Замечания по программированию
AAD – коррекция деления двоично-десятичных распакованных чисел
Замечания по программированию
AAM – коррекция умножения двоично-десятичных распакованных чисел
Замечания по программированию
AAS – коррекция вычитания двоично-десятичных распакованных чисел
ADD – двоичное сложение без переноса
Замечания по программированию
ADC – двоичное сложение с переносом
Замечания по программированию
AND – логическое И
CALL – вызов процедуры
CBW – преобразование байта в слово
CLC – сброс флага переноса
CLD – сброс флага направления
CLI – сброс флага разрешения прерывания
CMC – инверсия флага переноса
CMP – сравнение
CMPS – сравнение строк
Замечания по программированию
CWD – преобразование слово в двойное слово
DAA – коррекция сложения двоично-десятичных упакованных чисел
DAS – коррекция вычитания двоично-десятичных упакованных чисел
DEC – декремент
Замечания по программированию
DIV – деление беззнаковое
ESC – команда сопроцессора
Замечания по программированию
HLT – останов процессора
IDIV – деление знаковое
IMUL – умножение знаковое
IN – ввод информации из порта ввода-вывода
INC – инкремент
Замечания по программированию
INT – программное прерывание
Замечания по программированию
INTO – прерывание по переполнению
Замечания по программированию
IRET – возврат из прерывания
Jcc – условные переходы
Замечания по программированию
JMP – безусловный переход
LAHF – загрузка флагов состояния в регистр AH
LDS – загрузка дальнего указателя для сегмента данных
LEA – загрузка эффективного адреса
Замечания по программированию
LES – загрузка дальнего указателя для дополнительного сегмента данных
LODS – загрузка строки
Замечания по программированию
LOOP/LOOPcc – цикл по счётчику в регистре CX
MOV – пересылка
MOVS – пересылка строк
Замечания по программированию
MUL – умножение беззнаковое
NEG – смена знака
NOP – нет операции
Замечания по программированию
NOT – инверсия
OR – логическое ИЛИ
OUT – вывод информации из порта ввода-вывода
POP – извлечение информации из стека
Замечания по программированию
POPF – загрузка регистра флагов из стека
PUSH – занесение информации в стек
Замечания по программированию
PUSHF – запись регистра флагов в стек
RCL – циклический сдвиг влево через флажок переноса
Замечания по программированию
RCR – циклический сдвиг вправо через флажок переноса
Замечания по программированию
RET – возврат из процедуры
Замечания по программированию
ROL – циклический сдвиг влево
Замечания по программированию
ROR – циклический сдвиг вправо
Замечания по программированию
SAHF – загрузка AH в регистр флагов
SAL – арифметический сдвиг влево
Замечания по программированию
SAR – арифметический сдвиг вправо
Замечания по программированию
SBB – двоичное вычитание с заёмом
Замечания по программированию
SCAS – сканирование строки
Замечания по программированию
SHL – логический сдвиг влево
Замечания по программированию
SHR – логический сдвиг вправо
Замечания по программированию
STC – установка флага переноса
STD – установка флага направления
STI – установка флага разрешения прерывания
STOS – запись строки
Замечания по программированию
SUB – двоичное вычитание
Замечания по программированию
TEST – логическое сравнение
WAIT – ожидание сопроцессора
Замечания по программированию
XCHG – обмен информацией
XLATB – табличная перекодировка
XOR – исключающее ИЛИ
DS:/ES:/SS:/CS: – префиксы замены сегмента
LOCK – блокировка шины
REP/REPcc – повторение строковой операции
REP/REPcc – повторение строковой операции - часть 2
Приложение Коды операций
Приложение Время выполнения команд
Приложение Время выполнения команд - часть 2



- Начало -