Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедуры. Команды обращения к процедурам




Команды обращения к процедурам

Это команды изменяющие содержимое счетчика команд, для вызова некоторой процедуры. Суда же относятся команды возврата из процедур. Суда же относятся команды возврата из процедур.

Операция по возврату с прерыванием

Критерий выбора формата команд:

1. Минимально возможная длина, т.е. команды должны быть короткими.

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

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

4. Длина любой команды должна быть ровна 2n.

Расширенные коды операций позволяют сократить длину машинной команды, за счет использования части операнда или части кода адресации под кодирование команды.

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

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

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

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

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

 

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

Существует 3 способа хранения адреса возврата:

1. Хранение адреса возврата в фиксированной ячейке памяти. Это может быть регистр или оперативная память.

Недостатки: допустим только 1 уровень вложенности процедур, если процедура вызывает другую процедуру, адрес возврата теряется. В чистом виде данный подход не используется. Однако в процессорах (PIK) используется массив фиксированных ячеек памяти.

2. Хранение адреса возврата в первой ячейке памяти вызвавшей процедуры.

Недостаток: допускается любое число вызовов вложенных процедур, но при этом ни одна процедура не вызывается дважды. Рекурсия не возможна. Данный подход не используется.

3. Хранение адреса возврата в вершине стека. Данный метод позволяет использовать вложенные процедуры, рекурсию, а также ценную рекурсию. Однако, количество рекурсивных вызовов процедуры ограниченна размерами стека. Размеры стека ограниченны разрядностью указателя стека.

Рекурсия – это способность процедуры вызывать саму себя.

Ценная рекурсия – это когда процедура вызывает сама себя через вложенный вызов иных процедур.

Сопроцедуры – это группа процедур, которая выполняется фрагментально и способно вызывать друг друга не с начала.

Для организации взаимодействия сопроцедур используется временный регистр обмен данными адреса возврата из процедуры.

 

 
 

 


1. Считать адрес возврата вызываемой процедуры с вершины стека поместить во временный регистр.

2. Загрузить счетчик команд, вызвавший сопроцедуры в вершину стека.

3. Поместить содержимое временного регистра в счетчик команд.

 




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


Дата добавления: 2013-12-12; Просмотров: 429; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.