Similar presentations:
Архитектура и формат машинных команд процессора i8086
1.
ЭВМ и периферийныеустройства
2.
Архитектура и формат машинных командпроцессора i8086
Вопросы
1. Обзор литературы
2. Архитектура процессора i8086
3. Формат машинных команд процессора i8086
3.
Литература1. Степанов А.Н. Архитектура вычислительных систем и
компьютерных сетей. – СПб.: Питер, 2007. – 509 с.
4.
5.
6.
7.
Системный отладчик debug8.
9.
Архитектура процессора i808610.
Нумерация байтов и стандартные поля оперативной памяти11.
Поле оперативной памяти12.
Адрес байтов памяти в компьютере с двадцатиразрядной шиной13.
Упрощенная схема компьютера с шинной архитектурой14.
Программная модель оперативной памяти15.
Прямой и обратный порядки записи кода в поле16.
Перемещение сегмента в оперативной памяти17.
Программная модель процессора i808618.
Регистры процессора i808619.
Сегменты оперативной памяти20.
Сегментная адресация процессора i808621.
Схема сегментной адресации процессора i808622.
Регистр флагов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.
Фрагмент системы команд процессора i808627.
Форматы машинных команд процессора i808628.
Безадресные команды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=0139.
Пример формирования одноадресные команды общей модификации, при mod=1040.
Байт префикса замены сегмента вкоманде общей модификации
При отсутствии байта префикса операнд выбирается, либо из сегмента
данных (если в формировании адреса участвует регистр 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.
Выполнение машинной командыа. Четвертый этап
б. Пятый этап
programming