Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab. №19 (чистовик).doc
Скачиваний:
3
Добавлен:
04.09.2019
Размер:
315.39 Кб
Скачать

7 Содержание отчёта

    1. Наименование и цели лабораторной работы.

    2. Условия, проверочные программы и результаты выполнения заданий № 1, 2 в виде таблиц.

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

    4. Ответы на контрольные вопросы.

8 Контрольные вопросы

    1. Поясните, как сохранить в стеке содержимое пары регистров DE. Укажите необходимые команды и поясните действия МП.

    2. Поясните, как восстановить содержимое пары регистров DE из стека. Укажите необходимые команды и поясните действия МП.

    3. Поясните, как МП осуществляет сравнение содержимого пар регистров HL и DE в подпрограмме сравнения (табл. 8).

    4. Поясните, как МП осуществляет подсчёт КС в подпрограмме подсчёта КС (задание 2).

9 Требования к знаниям и умениям студентов

В результате выполнения лабораторной работы студенты должны знать:

  • систему команд МП КР580ВМ80;

  • команды манипуляции стеком, вызова подпрограммы и возврата;

  • назначение команд системной программы МОНИТОР.

Должны уметь:

  • составлять программы, содержащие последовательности команд манипуляции стеком, вызова подпрограммы и возврата;

  • готовить к работе УМК;

  • вводить и выполнять программы в автоматическом режиме.

10 Методические указания

    1. Теоретическое обоснование

Стек – это специальная область ОЗУ, используемая для сохранения и восстановления данных, а также адресов возврата при вызове подпрограммы. Нижняя граница области стека определяется 16-разрядным регистром-указателем стека SP. В микропроцессорной системе предусмотрены три типа операций со стеком:

  • запись в стек;

  • восстановление;

  • обмен стеком.

Запись в стек осуществляется при сохранении содержимого пар регистров (BC, DE, HL, PSW), а также при вызове подпрограммы (адрес возврата). Запись в стек производится следующим образом:

  • из указателя стека SP вычитается 1;

  • по адресу указателя стека записывается старший байт (содержимое ст. регистра или ст. байта адреса);

  • из указателя стека вычитается 1;

  • записывается младший байт.

Например, при сохранении содержимого пары регистров BC указатель стека и сам стек будут выглядеть:

область стека

Значение после записи → SP-2

C

SP-1

B

Исходное значение → SP →

Восстановление содержимого пар регистров и возврат осуществляется в обратном порядке:

  • по адресу в указателе стека считывается младший байт;

  • к содержимому указателя стека прибавляется 1;

  • считывается содержимое старшего байта;

  • к указателю прибавляется 1.

Восстановление содержимого пары регистров BC осуществляется следующим образом:

Исходное значение → SP

C

SP+1

B

Значение после восстановления SP +2

При обмене стеком осуществляется обмен содержимого верхнего элемента стека и содержимого пары регистров HL. Значение указателя стека при этом не изменится.

область стека

L ←

← УС

H ←

Восстановление содержимого пар регистров из стека должно производится в обратном порядке записи. Так, например, если в стек была произведена запись в последовательности: BC, DE, HL – восстановление должно производится в обратном порядке – HL, DE, BC. Таким образом, стек работает по принципу “первым пришёл, последним ушёл”.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]