Команда - вызов - подпрограмма - Большая Энциклопедия Нефти и Газа, статья, страница 2
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один. Законы Мерфи (еще...)

Команда - вызов - подпрограмма

Cтраница 2


16 Параметры программ, составленных на языке Паскаль и языке ассемблера. [16]

В процессорах, не располагающих аппаратным указателем стека ( например, 9900), предусмотрены команды вызова подпрограммы, которые сохраняют адрес возврата в заданном регистре процессора. Когда используются вложенные вызовы подпрограмм, то только от программиста зависит, где хранить содержимое этого регистра - в специальных ячейках памяти или в стеке.  [17]

Такой программный переход можно сделать зависимым от выполнения некоторых условий, устанавливаемых в процессе выполнения программы; это осуществляется с помощью команд условных переходов и команд вызова подпрограмм.  [18]

19 Схема системы приоритетных прерываний с учетом приоритета. [19]

Еще один довольно простой способ организации обслуживания прерываний-использование программы опроса, блок-схема которой представлена на рис. 12.23. При возникновении запроса на прерывание запускается программа опроса; запуск программы опроса осуществляется так же, как выполняется команда вызова подпрограммы. Единственное отличие между этим способом использования программы опроса и способом, описанным выше, заключается в том, что запуск программы опроса в данном случае происходит тогда, когда устройство, нуждающееся в обслуживании, подаст сигнал запроса на прерывание. При таком способе запуска программы опроса устройство, подавшее запрос на прерывание, будет обслужено быстрее, чем при обычном способе программного обращения к программе опроса.  [20]

Большинство процессоров имеет особый регистр ( SP), указывающий стек, в котором располагаются адреса возврата. Команды вызова подпрограммы ( JSR или CALL) записывают адреса возврата в стек, а команды выхода из подпрограммы ( RTS или RET) осуществляют выборку адресов возврата из стека.  [21]

При организации работы с подпрограммами для сохранения адреса возврата используется стек. Команды вызова подпрограмм CALL адрес работают следующим образом. Когда процессор считывает из памяти команду вызова подпрограммы, программный счетчик увеличивается и показывает на команду, следующую за командой вызова подпрограммы. С этой команды выполнение программы должно продолжиться после окончания работы подпрограммы. Таким образом, программный счетчик после выборки команды вызова подпрограммы содержит адрес возврата. При выполнении обращения к подпрограмме процессор сохраняет содержимое программного счетчика в стеке. Адрес, с которого начинается подпрограмма, вычисляется процессором по адресному полю команды вызова подпрограммы и помещается в программный счетчик. Процессор приступает к выполнению подпрограммы.  [22]

23 Сегментная адресация [ Исполнительныйа9реа. [23]

Для упрощения перехода и возврата из подпрограмм используются стековая память и ряд специальных команд. Имеются команды вызова подпрограммы и возврата из подпрограммы. Дополнительную гибкость в организации работы с подпрограммами обеспечивают оригинальные команды вызова по условию подпрограммы и возврата по условию из нее.  [24]

Во многих отношениях команды вызова подпрограмм аналогичны командам перехода. При выполнении команд вызова подпрограмм по условию выясняются значения разрядов регистра состояния; в зависимости от этих значений происходит или нет вызов подпрограмм.  [25]

Область сохранения различными компиляторами организуется по-разному. Например, компилятор PL / I формирует в объектном модуле команды вызова подпрограмм, которые будут резервировать область сохранения при исполнении загрузочного модуля, а компилятор ФОРТРАН организует область сохранения непосредственно внутри вызывающего объектного модуля.  [26]

Область сохранения различными компиляторами организуется по-разному. Например, компилятор PL / I формирует в объектном модуле команды вызова подпрограмм, которые будут резервировать область сохранения при исполнении загрузочного модуля, а компилятор ФОРТРАН организует область сохранения непосредственно внутри вызывающего объектного модуля.  [27]

Если в программе встречаются одинаковые последовательности команд, то для того чтобы не записывать такие последовательности по нескольку раз в памяти, их выделяют в подпрограммы. Переход от выполнения программы к выполнению подпрограммы производится с помощью команды вызова подпрограмм. Команды вызова подпрограмм и возврата из подпрограмм, как и команды переходов, бывают безусловными и условными.  [28]

29 Состояние стека микропроцессора во время выполнения подпрограммы второго уровня. [29]

В этом разделе мы будем изучать команды, позволяющие работать со стеком микропроцессора. Нам известно, что стек микропроцессора применяется либо при выполнении команд вызова подпрограмм, либо при обработке прерываний.  [30]



Страницы:      1    2    3    4