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

9. Состав команд операции вызова подпрограмм и возврата в основную программу

Эти команды составляют пятую категорию состава команд типового МП. Их только две: Команды вызова (CALL) и возврата (RET) всегда используются парами. При их выполнении индикаторы не изменяются.

Трехбайтовая команда CALL используется основной программой для перехода МП (или ветвления) к подпрограмме. В примере подпрограмма является короткой последовательностью команд, целью которой является создание интервалов времени в течение 1 с. Когда МП передает первую команду CALL по адресу 1000Н, он находит адрес перехода в двух следующих байтах программы. Адрес следующей команды за CALL отправляется в стек (не показанный на рис. 6.32), и МП переходит тогда в начало подпрограммы по адресу 1000Н. Команды, которые составляют эту

Рис. Взаимодействие основной программы и подпрограммы при командах CALL (ВЫЗОВ) и RET (ВОЗВРАТ)

программу счета времени, выполняются, пока МП не передаст команду возврата (RET). Сохраняющийся в стеке адрес (2010Н) отыскивается счетчиком команд, и МП продолжает выполнение основной программы, принимая ее там, где он ее покинул. Это нормальное выполнение продолжается до тех пор, пока МП не встретит другую команду вызова по адресу 2020Н. Микропроцессор сохраняет адрес следующей команды (2023Н) в стеке и переходит на подпрограмму, начинающуюся адресом 1000Н. После завершения выполнения этой подпрограммы команда возврата извлекает из стека адрес следующей команды основной программы и загружает его в счетчик команд. Данная подпрограмма может быть использована много раз в ходе выполнения одной и той же основной программы. Подпрограмма может быть расположена в ОЗУ или ПЗУ.

10 Состав команд операции передачи данных

Команды передачи данных составляют третью категорию команд нашего типового микропроцессора. Они выполняют передачу данных из регистра в регистр, размещение данных в памяти, размещение извлеченных из памяти. Почти все команды передачи не влияют на индикаторы МП. Эта группа содержит множество команд, данные могут быть переданы из любой ячейки памяти в любой регистр или наоборот. Каждая команда передачи содержит адреса источника и назначения данных. Способы адресации ориентированы на то, где и как осуществляется поиск данных.

Существует пять команд непосредственной загрузки данных. Эти команды используются очень часто для помещения начального значения в регистр МП в заданный момент, предшествующий программе. На рис. 6.22 приведен пример такой команды. Пара регистров HL емкостью 16 бит должна быть загружена данными, следующими не посредственно за КОП в памяти.

Рис. 6 22. Команда загрузки пары регистров HL с непосредственной адресацией

Рис 6.23. Команда загрузки пары регистров HL с прямой адресацией

( здесь 0000 ООН), он помещается в регистр L (см. рис. 6.22), третий—СБ данных (здесь ООН 1100), который помещается в регистр Я пары HL.

Следующий пример — использование команды ЗАГРУЗИТЬ прямо HL (LHLD) — приведен на рис. 6.23. Команда LHLD использует прямой способ адресации, второй и третий байт являются 16-разрядными адресами памяти данных для загрузки.

Типовой МП снабжен пятью командами размещения. Рассмотрим пример использования команды прямого размещения содержимого А, приведенный на рис. 6.24. Содержимое аккумулятора (регистр Л) помещается в память LOC , на которую ука-

Рис. 6.24. Команда загрузки данных аккумулятора в память с прямой адресацией

зывает 16-разрядный адрес, составленный вторым и третьим байтом команды. После выполнения ячейка памяти (LOC) и аккумулятор содержат те же данные, т. е. 1100 0000.

Команда ввода идентична команде загрузки. Источник данных передачи является портом ввода, идентифицированным двоичным 8-разрядным числом, назначение этих данных—аккумулятор МП.