3.43M
Категория: ПрограммированиеПрограммирование

Архитектура и формат машинных команд процессора i8086

1.

ЭВМ и периферийные
устройства

2.

Архитектура и формат машинных команд
процессора i8086
Вопросы
1. Обзор литературы
2. Архитектура процессора i8086
3. Формат машинных команд процессора i8086

3.

Литература
1. Степанов А.Н. Архитектура вычислительных систем и
компьютерных сетей. – СПб.: Питер, 2007. – 509 с.

4.

5.

6.

7.

Системный отладчик debug

8.

9.

Архитектура процессора i8086

10.

Нумерация байтов и стандартные поля оперативной памяти

11.

Поле оперативной памяти

12.

Адрес байтов памяти в компьютере с двадцатиразрядной шиной

13.

Упрощенная схема компьютера с шинной архитектурой

14.

Программная модель оперативной памяти

15.

Прямой и обратный порядки записи кода в поле

16.

Перемещение сегмента в оперативной памяти

17.

Программная модель процессора i8086

18.

Регистры процессора i8086

19.

Сегменты оперативной памяти

20.

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

21.

Схема сегментной адресации процессора i8086

22.

Регистр флагов

23.

Флаги процессора i8086
Название
Разряд
Значение
0
Флаг переноса из старшего бита результата. Равен 1,
если был такой перенос. Является признаком выхода из
диапазона представлений для без знаковых чисел
2
Флаг контроля четности. Равен 1, если младший байт
результата содержит четное количество единиц
4
Вспомогательный флаг переноса. Равен 1, если
требуется коррекция сложения или вычитания BCDданных
6
Флаг нуля. Равен 1, если получен нулевой результат
7
Флаг знака. Равен 1, если получен результат, который
можно трактовать как отрицательное число
11
Флаг переполнения. Равен 1, если был перенос из
старшего или в старший бит результата и при этом
состояние бита изменилось. Это признак выхода из
диапазона представлений для знаковых чисел
8
Флаг режима трассировки. Равен 1, если процессор
находится в режиме трассировки
9
Флаг прерывания. Равен 1, если аппаратные
прерывания разрешены
Флаг
направления.
Равен
1,
если
цепочка
обрабатывается в направлении возрастания адресов
cf (Carry Flag)
pf (Parity Flag)
af (Auxiliary Flag)
zf (Zero Flag)
sf (Sign Flag)
of (Overflow Flag)
tf (Trace Flag)
if (Interrupt Flag)
df (Direction Flag)
10

24.

Способы адресации

25.

Сравнение машинного и ассемблерного формата

26.

Фрагмент системы команд процессора i8086

27.

Форматы машинных команд процессора i8086

28.

Безадресные команды

29.

Одноадресные команды регистровая модификация

30.

Одноадресные команды общая модификация
Кодировка параметра r/m, при mod=112

31.

Пример одноадресной команды общей модификации
FEC716 = 1111111
КОП
0
11
W mod
inc bh
000
КОПД
111
r/m

32.

Одноадресные команды общая модификация

33.

Адресация в одноадресных командах общей модификации
(кроме mod = 00 для r/m = 110)

34.

Параметры одноадресных команд общей модификации
mod = 002
длина команды – 2 или 3 байта (за исключением команды с
непосредственным операндом);
операнд в поле памяти, дополнительное смещение в команду не включается,
параметр Dk в формуле отсутствует
mod = 012
длина команды – 3 или 4 байта;
смещение в команде Dk занимает один дополнительный байт «младший байт
смещения»
mod = 102
длина команды – 4 или 5 байта;
смещение в команде Dk занимает два дополнительных байта «младший байт
смещения» и «старший байт смещения»
mod = 112
операнд в регистре процессора

35.

Пример формирования одноадресные команды общей
модификации, при mod=10

36.

Пример формирования одноадресные команды общей модификации, при mod=00
* Пример использования прямой адресации при mod=00 и r/m=110

37.

Сравнение регистровой и косвенной адресации

38.

Пример формирования одноадресные команды общей модификации, при mod=01

39.

Пример формирования одноадресные команды общей модификации, при mod=10

40.

Байт префикса замены сегмента в
команде общей модификации
При отсутствии байта префикса операнд выбирается, либо из сегмента
данных (если в формировании адреса участвует регистр bx) либо из
сегмента стека (в случае bp).
С помощью байта префикса программист указывает дополнительный
сегмент из которого следует выбрать операнд

41.

Пример одноадресной команды общей модификации
команда FE040216 – операнд выбирается из сегмента данных
команда 26FE040216 - операнд выбирается из регистра es
запись в ассемблерном формате – es: inc byte ptr [bx + si + 02]

42.

Правило записи операндов в двухадресных командах
В системе команд процессора i8086 один из операндов обязательно
должен находиться в регистре процессора, а второй может
находится как в регистре процессора, так и в поле оперативной
памяти.

43.

Формат двухадресной команды
Кодировка параметра reg, r/m

44.

Кодировка параметров в двухадресных командах
d=0 - результат записывается по адресу, определяемому
с помощью признаков mod и r/m
d=1 - результат записывается в регистр процессора с
кодом reg
Смысл и кодировка параметров W, mod и r/m не изменились

45.

Пример двухадресной команды
00E816 = 000000
0
0
11
101
0002
КОП
d
W
mod
reg
r/m
al := al + ch

46.

Сравнение форматов двухадресных команд

47.

Формат команды с непосредственным операндом, регистровая
модификация (см. ошибку)
B70FF716 = 1011 0111 0000 1111 1111 00002
1011
0
111
00001111 111100002
КОП
W
reg
операнд
mov
0
bh
операнд

48.

Пример команды с непосредственным операндом
BF0FF016 = 1011 1111 0000 1111 1111 00002
1011
1
111
00001111 111100002
mov
1
di
операнд
Обратная запись в регистр di F00F
Особенность записи команды в ассемблерном формате
(код начинается с шестнадцатеричной цифры)
mov di 0F00Fh

49.

Формат команды с непосредственным операндом, общая модификация
Параметр mod принимает только значения 002 или 112

50.

Пример команды с непосредственным операндом общей модификации
C6 07 0F16 = 1100011
КОП
0
00
000
1112
W
mod
КОПД
r/m

51.

Адресация в командах с непосредственным операндом
Пересылка кода OF в поле памяти, адресация с базированием через
регистр bx

52.

Пример команды с непосредственным операндом
C7 07 0F F016
W=1 - команда содержит четырехбайтовый машинный код, а ее
последние два байта – код непосредственного операнда
Обратная запись кода F00F записывается по тому же адресу, что и
в предыдущем примере, а в ассемблерном формате 0F00F

53.

Этапы выполнение машинной команды

54.

Адресация начала машинной программы

55.

Выполнение машинной команды
а. Исходное состояние
б. Первый этап

56.

Выполнение машинной команды
а. Четвертый этап
б. Пятый этап
English     Русский Правила