Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТ и МП - Изучение архитектуры и програмных мод...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
187.39 Кб
Скачать

Нечетные варианты

1

  1. Загрузить регистр АХ числом 2000Н.

  2. Загрузить регистры сегментов DS и SS адресом начала сегмента из АХ.

  3. Обнулить регистры АХ, ВХ, СХ, DX разными способами.

  4. Загрузить указание стека SP числом 50Н.

  5. Загрузить регистр ВХ числом 4261Н.

  6. Обменять содержимое регистров ВН и CL.

2

  1. Совместить дополнительный ES и стековый сегменты.

  2. Загрузить АХ из регистра сегмента стека.

  3. Загрузить ВХ из регистра сегмента данных.

  4. Обменять содержимое регистров DS и SS.

  5. Загрузить в стек содержимое регистров DS и SS.

  6. Обменять содержимое регистров DS и SS.

3

1. Загрузить в регистр АХ число 3000Н.

2. Совместить стековый, дополнительный сегменты и сегмент данных.

3. Загрузить в регистр СХ счетчик циклов.

4. Запомнить его значение в стеке.

5. Обнулить счетчик.

6. Восстановить счетчик.

4

  1. Загрузить сегментный регистр DS числом С100Н.

  2. Загрузить указатель стека числом 0000Н. Загрузить указатель базы ВР числом 5FFAH.

  3. Запомнить содержимое указателя базы в стеке.

  4. Обнулить указатель базы.

  5. Восстановить содержимое указателя базы.

  6. Переслать содержимое указателя базы в счетчик.

5

  1. Переслать содержимое регистра CS в регистр АХ.

  2. Совместить все сегменты, кроме кода.

  3. Обнулить все регистры общего назначения.

  4. Записать в регистр DХ константу -112D.

  5. Сохранить содержимое регистра DХ в стеке.

  6. Вызывать содержимое регистра DХ из стека в регистр АХ.

6

  1. Загрузить регистр AL числом 10001101В.

  2. Загрузить регистр АН числом -122D.

  3. Загрузить указатель базы из регистра DХ.

  4. Загрузить индексный регистр DI числом АВ34Н.

  5. Загрузить индексный регистр SI из регистра АХ.

  6. Обменять содержимое индексных регистров.

7

  1. Загрузить регистр AL числом CDH .

  2. Загрузить регистр AH числом АВH.

  3. Запомнить содержимое регистра АХ в регистре ВХ.

  4. Обнулить содержимое регистра АХ.

  5. Восстановить содержимое регистра АХ.

  6. Запомнить содержимое регистра АХ в стеке.

8

  1. Загрузить регистр SI числом А7В8H.

  2. Загрузить регистр DI числом В8А7H.

  3. Запомнить содержимое регистра SI в стеке.

  4. Запомнить содержимое регистра DI в стеке.

  5. Обменять содержимое регистров SI и DI с использованием стека.

  6. Обменять содержимое регистров SI и DI еще раз.

9

  1. Загрузить счетчик числом АВН.

  2. Загрузить регистр ВХ из регистра-счетчика.

  3. Записать в стек содержимое регистра ВХ .

  4. Обнулить содержимое регистра DX.

  5. Переписать в регистр DX содержимое регистра ВХ из стека.

  6. Обменять содержимое регистров СХ и DX.

0

  1. Загрузить регистры DX и АХ деленным 87654321Н.

  2. Загрузить регистр DX из регистра - счетчика .

  3. Загрузить сегментный регистр SS адресом 4000Н.

  4. Загрузить содержимое регистра SS к стеку.

  5. Вызывать содержимое регистра SS в регистр DS.

  6. Обменять содержимое регистров SS и DS.

5 Лабораторное задание

  1. Вызывать отладочную программу DEBUG на экран монитора компьютера. Процессор в этой программе используется как І80286 в реальном режиме; то есть работает с 16-разрядными регистрами.

  1. Вывести на экран содержимое всех регистров МП с помощью директивы:

R <ENTER>

  1. Задать содержимое регистра IP (указателя команд) и содержимое регистра сегмента кодов CS:

(CS)=7000H, (IP)=100H.

  1. Начиная с адреса (CS):(IP) ввести программу на языке Ассемблер-86, написанную в домашнем задании, при помощи директивы

А (CS):(IP) <ENTER>

После каждого нажатия на клавишу <ENTER> на экране будет появляться текущий адрес кодового сегмента, по которому можно вводить команду Ассемблера. Введение команды осуществляется клавишей <ENTER>. При определении ошибок в командах нужно правильно написать команды по тем же адресам.

  1. Ассемблировать введенную программу, для чего ввести директиву

u (IP нач) ... (IP конечн) < ENTER >

После этого программа в виде объектного модуля будет расположена в памяти по тем адресам, по которыми вводились команды.

  1. Осмотреть область памяти, занятую программой. Найти машинные коды первой команды программы и проверить их по таблице кодировки.

  1. Выполнить программу в пошаговом режиме. Для этого нужно ввести директиву:

Т=(CS):(IP нач) 1 <ENTER>

благодаря которой будет выполнена первая команда. На экране появится содержимое всех регистров и следующая выполняемая команда. Проанализировать результат выполнения первой команды. Для выполнения следующих команд нужно вводить директиву:

Т <ENTER>

  1. Заполнить протокол выполнения лабораторной работы в виде таблицы для всех команд программы.

  1. Проанализировать протокол выполнения программы в пошаговом режиме.

  1. По окончании работы выйти из программы DEBUG директивой

Q <ENTER>