- •Лабораторная работа №2 Программная модель компьютера
- •Основные понятия
- •Организация памяти
- •Программирование на Ассемблере для процессора Intel 8086 Понятие языка Ассемблера
- •Формат операторов Ассемблера
- •Система команд процессора Intel 8086
- •Команды пересылки данных
- •Арифметические операции
- •Логические операции
- •Команды условного перехода
- •Команды передачи управления
- •Команды обработки строк
- •Команды прерывания
- •Команды управления состоянием процессора
- •Режимы адресации процессора Intel 8086
Команды прерывания
INT - прерывание
INTO - прерывание по переполнению
IRET - возврат после обработки прерывания
Команды управления состоянием процессора
CLС - сброс признака переноса
CLD - сброс признака направления
CLI - сброс признака разрешения прерывания
CMC - инвертирование признака переноса
ESC - выборка кода операции и операнда
HLT - останов
LOCK - блокирование шины
NOP - нет операции
STC - установка признака переноса
STD - установка признака направления
STI - установка признака разрешения прерывания
WAIT - ожидание
Более подробное описание каждой из команд приводится в справочнике intro.hlp.
Режимы адресации процессора Intel 8086
Режимом адресации называется способ определения адреса операнда. Режимы адресации разделяются на два класса - режимы адресации данных и режимы адресации переходов. Рассмотрим режимы адресации данных.
1. Непосредственный. Значение операнда длиной 8 или 16 бит является непосредственной частью команды.
Пример: mov ax, 10
2. Прямой. Смещение адреса операнда указано прямо в команде.
Пример: mov i, ax
3. Регистровый. Операнд содержится в указанном командой регистре; 16-битный операнд может находиться в регистрах ax, bx, cx, dx, si, di, sp, bp, а 8-битный - в регистрах al, ah, bl, bh, cl, ch, dl, dh.
Пример: inc cx
4. Регистровый косвенный. Смещение адреса операнда находится в базовом регистре bx или bp или в индексном регистре si или di.
Пример: sub ax, Vector[bx]
5. Регистровый относительный. Смещение адреса операнда определяется как сумма 8- или 16-битного относительного смещения и содержимого базового (bx или bp) или индексного (si или di) регистров.
Пример: add ax, [bp+2]
6. Базовый индексный. Смещение адреса операнда определяется как сумма содержимого базового (bx или bp) и индексного регистров (si или di).
Пример: mov ax, [bx+si]
7. Относительный базовый индексный. Смещение адреса операнда определяется как сумма 3-х слагаемых: 8- или 16-битного относительного смещения, содержимого индексного регистра (si или di) и содержимого базового регистра (bx или bp).
Пример: mov ax, [bx+si+2]