Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕМСТ_Шпора(ALL).docx
Скачиваний:
1
Добавлен:
13.09.2019
Размер:
1.46 Mб
Скачать

Відповідь:

Комментарий к команде: M(DS:di +0b6aeh) ←0c2cbh

1-й байт(код операции):

из табл. комманд, № 7 находим КОП 11000111b=C7h, w=1, т. к. длина операнда 16 бит.

2-й байт(постбайт):

10 – mod: поле mod=10, т.к. при вычислении эффективного адреса в команде используется 16-ти разрядное смещение(disp16=0b6aeh);

000 – reg: поле reg содержит расширение КОП (1-й байт);

101 – reg/mem: поле reg/mem =101, т.к. способ вычисления адреса левого(первого) операнда в сегменте данных: ЕА= di +disp= di+2.

Получаем второй байт: 10000101=85h.

3-й байт(dispLow):aeh.

4-й байт(dispHigh):b6h

5-й байт(dataLow):cbh

6-й байт(dataHigh):c2h

Машинный код команды: C7 85 AE B6 CB C2

Длина команды: 6 байта.

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

Левый операнд – базовая, где DI – база, 0b6aeh – смещение относительно базы.

Правый операнд – непосредственная, 0c2cbh – непосредственный 16-и битный операнд.

Время выполнения команды

Время выполнения в тактах:

nТ=(n+Tиа)=10+Tиа, где Tиа – время вычисления эффективного адреса: EA=di+2.

По таблице 11 находим, что для базовой адресации Tиа=9, тогда nТ=10+9=19 тактов.

Время выполнения команды в секундах:

Tk=(n+Tиа)*tТ=nТ*tТ=19*10-8=0,19 мкс, где

tТ=1/fТ=1/100000000=10-8.

  1. Виконати ручне дизасемблерування наведеного шістнадцяткового машинного коду команди: C7 82 5D B3 F5 D7 та отримати мнемокод команди; Привести коментар до вказаної команди; назвати способи адресації операндів, що в ній використовуються; розрахувати час виконання команди при fT=10 МГц та обсяг пам’яті, яка використовується для зберігання машинного коду команди; навести розташування команди у пам’яті (сегмент, зміщення).

Відповідь:

Задание: C7 82 5D B3 F5 D7

Длина команды: 6 байт.

1-й байт(код операции):

1100 0111b=C7-MOV r/m  data поле w=1, т.е. операнд 16-ми разрядный

2-й байт(постбайт):

10 000 010b=82h, где

10 – mod: при вычислении эффективного адреса в команде используется 16-ти разрядное смещение(disp16=0b35dh);

000 – reg

010 – reg/mem, mod=10: левый операнд – SP +disp

3-й байт(dispLow):5D

4-й байт(dispHigh):B3

5-й байт(dataLow):F5

6-й байт(dataHigh):D7

Мнемоника команды: MOV [sp+0b35dh], 0d7f5h

Адрессация операндов:

левый – базовая, где SP – база, 0b35dh – смещение

правый – непосредственная, 0d7f5h – непосредственное значение

Комментарий к команде: M(ES:SP+0b35dh) <- 0d7f5h

Размещение команды в памяти:

Время выполнения

Время выполнения в тактах:

nТ=(n+Tиа)=10+Tиа, где Tиа – время вычисления эффективного адреса: SP+disp16.

По таблице 11 находим, что Tиа=9, тогда nТ=10+9=19 тактов.

Время выполнения команды в секундах:

Tk=(n+Tиа)*tТ=nТ*tТ=19*10-8=0,19 мкс, где

tТ=1/fТ=1/100000000=10-8.

  1. Навести команду мікропроцесора ix86 та сформувати 8-розрядне число (data = 8 біт), за допомогою якого біти молодшої тетради акумулятора AL можна встановити в “1”. Інші біти AL залишити без змін. Відповідь пояснити.

Відповідь:

ORL (диз’юнкція, АБО)

7p 6 5 4 3 2 1 0р

А X X X X X X X X ; x=0/1; x+1=1; x+0=x

D8 0 0 0 0 1 1 1 1 ; D8 = Fh

A X X X X 1 1 1 1

  1. Сформувати 20-розрядну фізичну адресу входу в таблицю адрес переривань, якщо номер (тип) переривання дорівнює 77. Відповідь пояснити.

Відповідь:

Мікропроцесор іх86 має векторну (адресну) систему переривань із зовнішніми і внутрішніми джерелами запитів. Кожне джерело має свій “тип” – номер “входу” у таблицю векторів (адрес) оброблювачів переривань, за яким МП знаходить відповідну підпрограму обслуговування переривання. Таблиця векторів має 256 входів з номерами від 0D до 255 D і займає перші 1024 байти пам'яті – по чотири байти на кожен тип запиту (256х4 = 1024). Оскільки таблиця переривань знаходиться починаючи з нульових адрес в сегменті коду то старші 10 розрядів фізичної адреси представляють собою нулі. Молодші 10 розрядів фізичної адреси входу в таблицю переривань визначаються зсувом на 2 розряди вліво(множення на 4) номеру переривання. Так для 77-ого переривання молодші 10 розрядів фізичної адреси знаходимо як 77*4 = 120D = 0100 1101 00В. Таким чином повна 20-и розрядна фізична адреса обробника 77-ого переривання має вигляд: 00000000000100110100В

  1. Виконати функцію МП-ра ix86 та отримати результат виконання команди SBB AL,data8, якщо перед виконанням команди операнди, які являють собою числа зі знаком мають наступні значення: AL = -105, data8 = 10, CF = 1. Відповідь пояснити.