Министерство образования Республики Беларусь БГУИР Факультет заочного обучения Кафедра электронных вычислительных средств Контрольная работа № 1 по дисциплине: «Микропроцессорные системы» Выполнил студент гр. 000701 Проверил: Бибило П.Н. Специальность ЭВС Оценка: ________________ Купчиков Р.И. (вариант 12) ________________________ (подпись) ________________________ (дата) Почтовый адрес: г. Могилев, Б-р Непокорённых, д.76, кв.55 т. 8 044 711 77 99 e-mail: r.i.smart@yandex.com Минск 2013 Вариант 12 Задание1 (№12). Для микропроцессора 8086 (КМ1810ВМ86): 1) вычислить эффективный адрес: а) BP = C428h, SI = 17B3h, disp = 7654h; б) BX = 67A2h, SI = 7FC3h; в) BP = 73A5h, DI = 658Ch, disp = 65h; 2) вычислить физический адрес: а) DS = F163h, DI = EB53h; б) ES = 6B33h, BX = 2C86h; в) CS = 375Ch, IP = 75F6h. Эффективный адрес: Эффективный адрес равен сумме содержимого базового регистра (в данном задании это BP и BX), индексного регистра (в данном задании это SI и DI) и смещения. 16-й бит суммы (при нумерации с 0-го) отбрасывается. а) BP + SI + disp = C428h + 17B3h + 472h = 1522Fh. Ответ: 522Fh б) BX + SI = 67A2h + 7FC3h = E765h. Ответ: E765h в) BP + DI + disp = 73A5h + 658Ch + 65h = D996h. Ответ: D996h Физический адрес: Физический адрес равен сумме содержимого сегментного регистра, сдвинутого на 4 разряда влево, и содержимого индексного регистра. 20-й бит суммы (при нумерации с 0) отбрасывается. Оператор сдвига влево обозначен как «shl». а) (DS shl 4) + DI = (F163h shl 4) + EB53h = F1630h + EB53h = 100183h. Ответ: 00183h. б) (ES shl 4) + BX = (6B33h shl 4) + 2C86 = 6B330h + 2C86h = 6DFB6h. Ответ: 6DFB6h. в) (CS shl 4) + IP = (375Ch shl 4) + 75F6h = 375C0h + 75F6h = 3EBB6h. Ответ: 3EBB6h. Задание 2 (№12). Для микропроцессора 8086 (КМ1810ВМ86) определить логический и физический адреса операндов при (BX) = D623h, (DI) = BA29h, (BP) = E4F3h, (DS) = A1F6h, disp16 = A138h для следующих режимов адресации: 1) прямого; 2) регистрового косвенного с участием регистра BP; 3) регистрового относительного с использованием регистра BX; 4) базового индексного с использованием регистра BX; 5) относительного базового индексного с использованием регистра BP. Логический адрес задается двумя 16-разрядными значениями — адресом сегмента и эффективным адресом. Для всех режимов адресации адресом сегмента является содержимое регистра DS (A1F6h). Физический адрес формируется путем сдвига на 4 разряда влево содержимого сегментного регистра и последующим суммированием этого значения с эффективным адресом. 20-й бит суммы (при нумерации с 0) отбрасывается. Оператор сдвига влево обозначен как «shl». 1) При прямом режиме адресации эффективным адресом операнда является только смещение. disp16 = A138h. Физический адрес равен ((DS) shl 4) + disp16 = A1F60h + A138h = AC098h. Ответ: A1F6h:A138h (логический адрес), AC098h (физический адрес). 2) При регистровом косвенном режиме адресации эффективным адресом операнда является содержимое базового или индексного регистра (в данном случае, регистра BP). (BP) = E4F3h. Физический адрес равен ((DS) shl 4) + disp16 = A1F60h + E4F3h = B0453h Ответ: A1F6h:E4F3h (логический адрес), B0453h (физический адрес). 3) При регистровом относительном режиме адресации эффективным адресом операнда является сумма содержимого базового или индексного регистра (в данном случае, регистра BX) и смещения. (BX) + disp16 = D623h + A138h = 1775B. Начальная единица отбрасывается. Физический адрес равен ((DS) shl 4) + (BX) + disp16 = A1F60h + D623h + A138h = B96BBh Ответ: A1F6h:775Bh (логический адрес), B96BBh (физический адрес). 4) При базовом индексном режиме адресации эффективным адресом операнда является сумма содержимого базового (в данном случае, регистра BX) и индексного (в данном случае, регистра DI) регистра. (BX) + (DI) = D623h + BA29h = 1904C. Начальная единица отбрасывается. Физический адрес равен ((DS) shl 4) + (BX) + (DI) = A1F60h + D623h + BA29h = BAFACh Ответ: A1F6h:904Ch (логический адрес), BAFACh (физический адрес). 5) При относительном базовом индексном режиме адресации эффективным адресом операнда является сумма содержимого базового регистра (в данном случае, регистра BP), содержимого индексного регистра (в данном случае, регистра DI) и смещения. (BP) + (DI) + disp16 = E4F3h + BA29h + A138h = 24054. Первая цифра отбрасывается Физический адрес равен ((DS) shl 4) + (BP) + (DI) + disp16 = A1F60h + E4F3h + BA29h + A138h = C5FB4h Ответ: A1F6h:4054h (логический адрес), C5FB4h (физический адрес). Задание 3 (№12). Для микропроцессора 8086 (КМ1810ВМ86) записать машинный код команд: а) CMP AL,DL; б) OR [SI + BP + 1F4h],DI; в) INC DH. а) CMP AL, DL Код команды CMP (если операнды — байты) — 00111010 = 3Ah. Режим md = 11 (т.к. операнды — только содержимое регистров), для регистра AL reg = 000, для регистра DL reg = 010. Таким образом, второй байт равен 11000010 = C2h Ответ: 3AC2h. б) OR [SI + BP + 1F4h], DI; Код команды OR (если операнды — слова и первый операнд — ячейка памяти, а второй — регистр) — 00001001 = 09h. Режим md = 10 (т.к. второй операнд — значение в ячейке памяти с 16-разрядным смещением), для регистра DI reg = 111, для ячейки памяти [SI + BP + disp16] r/m = 010. Таким образом, второй байт равен 10111010 = BA. В третьем байте находится младший байт 16-разрядного смещения, он равен F4h. В четвертом байте находится старший байт 16-разрядного смещения, он равен 01h. Ответ: 2B802701h. в) INC DH Код команды INC (если операнд — байт) — 11111110 = FEh. Второй байт имеет формат md 000 r/m. md = 11 (т.к. нужно уменьшить на 1 содержимое регистра). Для регистра DH reg = 110. Таким образом, второй байт равен 11000110 = C6h. Ответ: FEC6h.