Читайте также:
|
|
При организации подпрограмм важно выбрать правильный способ передачи параметров.Например,при вызове подпрограммы деления DIVID необходимо передать ей делимое DVND и делитель DVSR, а сама подпрограм-ма должна возвратить частное QUOT. Делимое,делитель и частное представля-ют собой параметры,передаваемые между вызывающей программой и подпрог-раммой. В языках высокого уровня подпрограмма DIVID записывается следую-щим образом: DIVID (DVND, DVSR, QUOT).
DVND, DVSR и QUOT представляют собой фиктивные(формальные)па-раметры,в терминах которых составляются операторы собственно подпрограм-мы.При выполнении подпрограммы они заменяются другими переменны-ми,например,можно вызвать DIVID(NUM1,NUM2,RLST). Текущие значения переменных NUM1,NUM2, и формируемое значение RLST заменяют собой формальные параметры и называются фактическими (действительными) пара-метрами.
Для МП-систем разработано несколько способов передачи параметров, основные из которых рассматриваются ниже.
ОБЩИЕ ДАННЫЕ
Понятие общих(глобальных) данных относится к данным,хранимым в тех ячейках памяти,к которым могут обращаться вызывающая программа и подпро-грамма.Например,при использовании подпрограммы деления DIVID две смеж-ные ячейки памяти с адресом DVND можно выделить для хранения 16-битового делимого,ячейку с адресом DVSR - для хранения 8-битного делителя,а сама подпрограмма должна формировать частное в ячейке с адресом QUOT.
ВНУТРЕННИЕ РЕГИСТРЫ
Второй способ заключается в передаче параметров во внутренних регистрах микропроцессора. Например,перед вызовом подпрограммы деления делимое загружается в регистры (H,L),а делитель – в регистр В.После вызова программа выполняет необходимые действия и возвращает результат в опреде-ленный регистр(регистры) микропроцессора. К примеру, частное может форми-роваться в регистре L,а положительный остаток – в регистре H.Основной недо-статок данного способа заключается в жестких ограничениях на число переда-ваемых параметров. В большинстве проводимых далее программ предполагается передача параметров через внутренние регистры, что несколько сокращает дли-ну листингов подпрограмм.
ОБЛАСТЬ ПАРАМЕТРОВ
Передача параметров через специально выделенную область ОП осуществля-ется следующим образом. Вызывающая программа до вызова подпрограммы записывает параметры в последовательных ячейках области параметров. Затем начальный адрес области загружается в один из указателей памяти микропро-цессора, чаще всего в регистры (H,L).Команда вызова CALL запоминает в стеке адрес возврата и передает управление первой команде подпрограммы.Информа-ция о нахождении параметров доступна подпрограмме,так как регистры (H,L) адресуют начало области параметров.С помощью команд MOV r,М значения параметров считываются во внутренние регистры микропроцессора и обраба-тываются подпрограммой. В качестве недостатка этого способа отметим необ-ходимость выделения отдельной области параметров для каждой подпрограммы.
Иногда передавать параметры в смежных ячейках памяти по каким-либо причинам неудобно. В таких ситуациях целесообразно применить передачу подпрограмме адресов параметров, оформленных в виде таблицы. Перед вызо-вом подпрограммы начальный адрес ТВL таблицы адресов загружается в регистры (H,L).В подпрограмме адреса загружаются во внутренний указатель памяти, после чего производится считывание из памяти собственно значений параметров.
Дата добавления: 2015-07-11; просмотров: 251 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Команды подпрограммы | | | Подразделение предпринимательства/гостеприимства |