- закрепление теоретических знаний о системе команд i8086;
- привитие навыков работы с вычислительной техникой на базе МП;
- исследование возможностей МП при выполнении арифметических команд.
Перечень используемого оборудования
2.1 Программа EMU8086.
2.2 ПК.
Краткие теоретические сведения
В МП i8086 могут выполняться все базовые арифметические операции, а также некоторые другие.
Мнемоника
Команды
Описание команды
Алгоритм команды
Количество байт
Количество тактов
ADD r/m, r/m/i
Сложение двух операндов.
reg reg+reg
mem mem+reg
2-41)
16+EA
reg reg+mem
2-41)
9+EA
reg8reg8+immed
reg16reg16+immed
mem8mem8+immed
3-52)
17+EA
mem16mem16+imed
4-63)
17+EA
AL AL+immed
AX AX+immed
ADC r/m, r/m/i
Сложение байта и флага переноса CF из предыдущей команды.
reg reg+reg+CF
mem mem+reg+CF
2-41)
16+EA
reg reg+mem+CF
2-41)
9+EA
reg8 reg8+immed+CF
reg16 reg16+immed+CF
mem8 mem8+immed+CF
3-52)
17+EA
mem16 mem16+imed+CF
4-63)
17+EA
AL AL+immed+CF
AX AX+immed+CF
INC r/m
Инкремент (сложение с единицей). Команда не воздействует на флаг CF
reg8 reg8+1
reg16 reg16+1
mem mem+1
2-41)
15+EA
SUB r/m, r/m/i
Вычитание двух операндов
reg reg-reg
mem mem-reg
2-41)
16+EA
reg reg-mem
2-41)
9+EA
reg8reg8-immed
reg16reg16-immed
mem8mem8-immed
3-52)
17+EA
mem16mem16-imed
4-63)
17+EA
AL AL-immed
AX AX-immed
SBB r/m, r/m/i
Вычитание байта и флага переноса CF из предыдущей команды. CF вычитается из младшего бита результата
reg reg-reg-CF
mem mem-reg-CF
2-41)
16+EA
reg reg-mem-CF
2-41)
9+EA
reg8 reg8-immed-CF
reg16 reg16-immed-CF
mem8 mem8-immed-CF
3-52)
17+EA
mem16 mem16-imed-CF
4-63)
17+EA
AL AL-immed-CF
AX AX-immed-CF
DEC r/m
Декремент (вычитание единицы). Команда не воздействует на флаг CF
reg8 reg8-1
reg16 reg16-1
mem mem-1
2-41)
15+EA
CMP r/m, r/m/i
Сравнение двух операндов – установка содержимого регистра флагов F по результату вычитания (сам результат не сохраняется)
F reg-reg
F mem-reg
2-41)
9+EA
F reg-mem
2-41)
9+EA
Freg8-immed
Freg16-immed
Fmem8-immed
3-52)
1+EA
Fmem16-imed
4-63)
1+EA
F AL-immed
F AX-immed
Обозначения:
src – операнд-источник; dest – операнд-назначение; reg – 8/16-разрядный РОН; reg8 – 8-разрядный РОН; reg16 – 16-разрядный РОН; sr – сегментный регистр; mem – 8/16-разрядная ячейка памяти; mem8 – 8-разрядная ячейка памяти; mem16 – 16-разрядная ячейка памяти; immed – непосредственный операнд; EA – эффективный адрес; A – регистр аккумулятор; F – регистр флагов.
1) Команда занимает 2 байта, если при адресации ячейки памяти не используется смещение, 3 - если используется 8-разрядное смещение и 4 – при 16-разрядном смещении.
2) Команда занимает 3 байта при адресации ячейки памяти не используется смещение, 4 - если используется 8-разрядное смещение и 5 – при 16-разрядном смещении.
3) Команда занимает 4 байта при адресации ячейки памяти не используется смещение, 5 - если используется 8-разр\ядное смещение и 6 – при 16-разрядном смещении.