Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум 4 А4.docx
Скачиваний:
63
Добавлен:
13.02.2016
Размер:
1.32 Mб
Скачать

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

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

Команды управления МП Intel 8085A включают в свой состав команды переходов, вызовов подпрограмм, возвратов в основную программу, передачи содержимого пары регистров в стек.

Существуют два типа команд переходов: безусловный и условный.

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

Команды условного перехода выполняются в том случае, если установлен или сброшен соответствующий бит признака, в противном случае команда игнорируется и выполняется следующая за ней команда.

Существуют команды условного перехода для следующих битов регистра признаков:

  • бита нуля;

  • бита переноса;

  • бита знака;

  • бита четности.

Для каждого бита признака предусмотрены две команды перехода: переход по установленному биту признака (=1) и по сброшенному биту признака (=0).

Соответствие выполняемых команд и признаков приведены в таблице 16.1.

Таблица 16.1 – Соответствие выполняемых команд и признаков

Признак

Ноль, Z

Перенос, С

Четность, Р

Знак, S

Команда

1

0

1

0

1

0

1

0

JZ

да

JNZ

да

JC

да

JNC

да

JPE

да

JPO

да

JM

да

JP

да

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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