
- •Государственный комитет связи и информатизации Украины
- •Украинская государственная академия связи им. А.С.Попова
- •Изучение архитектуры и програмных моделей микропроцессоров фирмы intel
- •1 Цель работы
- •2 Ключевых положения
- •Общая характеристика микропроцессоров семьи intel
- •31 16 15 0 Указатели стека
- •Особенности архитектуры отдельных процессоров семьи intel
- •Микропроцессор і8086
- •2.2.2 Микропроцессор і80186
- •2.2.3 Микропроцессор і80286
- •Микропроцессоры і80386 и і80486
- •Программные модели мп семьи intel
- •Загрузка регистров
- •Контрольные вопросы
- •Домашнее задание
- •Привести архитектуру 16-разрядного мп.
- •Четные варианты
- •Нечетные варианты
- •5 Лабораторное задание
- •Содержание протокола
- •Список литературы
Нечетные варианты
№ 1
Загрузить регистр АХ числом 2000Н.
Загрузить регистры сегментов DS и SS адресом начала сегмента из АХ.
Обнулить регистры АХ, ВХ, СХ, DX разными способами.
Загрузить указание стека SP числом 50Н.
Загрузить регистр ВХ числом 4261Н.
Обменять содержимое регистров ВН и CL.
№ 2
Совместить дополнительный ES и стековый сегменты.
Загрузить АХ из регистра сегмента стека.
Загрузить ВХ из регистра сегмента данных.
Обменять содержимое регистров DS и SS.
Загрузить в стек содержимое регистров DS и SS.
Обменять содержимое регистров DS и SS.
№ 3
1. Загрузить в регистр АХ число 3000Н.
2. Совместить стековый, дополнительный сегменты и сегмент данных.
3. Загрузить в регистр СХ счетчик циклов.
4. Запомнить его значение в стеке.
5. Обнулить счетчик.
6. Восстановить счетчик.
№ 4
Загрузить сегментный регистр DS числом С100Н.
Загрузить указатель стека числом 0000Н. Загрузить указатель базы ВР числом 5FFAH.
Запомнить содержимое указателя базы в стеке.
Обнулить указатель базы.
Восстановить содержимое указателя базы.
Переслать содержимое указателя базы в счетчик.
№ 5
Переслать содержимое регистра CS в регистр АХ.
Совместить все сегменты, кроме кода.
Обнулить все регистры общего назначения.
Записать в регистр DХ константу -112D.
Сохранить содержимое регистра DХ в стеке.
Вызывать содержимое регистра DХ из стека в регистр АХ.
№ 6
Загрузить регистр AL числом 10001101В.
Загрузить регистр АН числом -122D.
Загрузить указатель базы из регистра DХ.
Загрузить индексный регистр DI числом АВ34Н.
Загрузить индексный регистр SI из регистра АХ.
Обменять содержимое индексных регистров.
№ 7
Загрузить регистр AL числом CDH .
Загрузить регистр AH числом АВH.
Запомнить содержимое регистра АХ в регистре ВХ.
Обнулить содержимое регистра АХ.
Восстановить содержимое регистра АХ.
Запомнить содержимое регистра АХ в стеке.
№ 8
Загрузить регистр SI числом А7В8H.
Загрузить регистр DI числом В8А7H.
Запомнить содержимое регистра SI в стеке.
Запомнить содержимое регистра DI в стеке.
Обменять содержимое регистров SI и DI с использованием стека.
Обменять содержимое регистров SI и DI еще раз.
№ 9
Загрузить счетчик числом АВН.
Загрузить регистр ВХ из регистра-счетчика.
Записать в стек содержимое регистра ВХ .
Обнулить содержимое регистра DX.
Переписать в регистр DX содержимое регистра ВХ из стека.
Обменять содержимое регистров СХ и DX.
№ 0
Загрузить регистры DX и АХ деленным 87654321Н.
Загрузить регистр DX из регистра - счетчика .
Загрузить сегментный регистр SS адресом 4000Н.
Загрузить содержимое регистра SS к стеку.
Вызывать содержимое регистра SS в регистр DS.
Обменять содержимое регистров SS и DS.
5 Лабораторное задание
Вызывать отладочную программу DEBUG на экран монитора компьютера. Процессор в этой программе используется как І80286 в реальном режиме; то есть работает с 16-разрядными регистрами.
Вывести на экран содержимое всех регистров МП с помощью директивы:
R <ENTER>
Задать содержимое регистра IP (указателя команд) и содержимое регистра сегмента кодов CS:
(CS)=7000H, (IP)=100H.
Начиная с адреса (CS):(IP) ввести программу на языке Ассемблер-86, написанную в домашнем задании, при помощи директивы
А (CS):(IP) <ENTER>
После каждого нажатия на клавишу <ENTER> на экране будет появляться текущий адрес кодового сегмента, по которому можно вводить команду Ассемблера. Введение команды осуществляется клавишей <ENTER>. При определении ошибок в командах нужно правильно написать команды по тем же адресам.
Ассемблировать введенную программу, для чего ввести директиву
u (IP нач) ... (IP конечн) < ENTER >
После этого программа в виде объектного модуля будет расположена в памяти по тем адресам, по которыми вводились команды.
Осмотреть область памяти, занятую программой. Найти машинные коды первой команды программы и проверить их по таблице кодировки.
Выполнить программу в пошаговом режиме. Для этого нужно ввести директиву:
Т=(CS):(IP нач) 1 <ENTER>
благодаря которой будет выполнена первая команда. На экране появится содержимое всех регистров и следующая выполняемая команда. Проанализировать результат выполнения первой команды. Для выполнения следующих команд нужно вводить директиву:
Т <ENTER>
Заполнить протокол выполнения лабораторной работы в виде таблицы для всех команд программы.
Проанализировать протокол выполнения программы в пошаговом режиме.
По окончании работы выйти из программы DEBUG директивой
Q <ENTER>