Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Cпособы передачи параметров






 

При организации подпрограмм важно выбрать правильный способ передачи параметров.Например, при вызове подпрограммы деления 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).В подпрограмме адреса загружаются во внутренний указатель памяти, после чего производится считывание из памяти собственно значений параметров.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.012 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал