Cтраница 2
ПП ар прерывает естественный ход программы и переводит его на адрес ар. При этом в адресном стеке запоминается адрес ( адрес возврата), на котором прерван естественный ход выполнения программы. [16]
Таким образом, адресный стек ( стек возврата) после каждого выполнения подпрограммы обеспечивает переход к оператору, записанному в программе после оператора обращения к подпрограмме. После каждого такого обращения содержимое адресного стека смещается вверх, и максимальное число вложений подпрограмм определяется числом регистров адресного стека. [17]
Выполнение программы в этом случае продолжается с шага подпрограммы с адресом ее начала до считывания команды В / О. После этого происходит смещение вниз содержимого регистров адресного стека и занесение прежнего содержимого регистра адресного стека во входной регистр счетчика шагов. В этом случае выполнение программы продолжается с шага программы, адрес которого на единицу больше адреса шага программы, содержащего адрес начала подпрограммы. [18]
Выполнение программы в этом случае продолжается с шага подпрограммы с адресом ее начала до считывания команды В / О. После этого происходит смещение вниз содержимого регистров адресного стека и занесение прежнего содержимого регистра адресного стека во входной регистр счетчика шагов. В этом случае выполнение программы продолжается с шага программы, адрес которого на единицу больше адреса шага программы, содержащего адрес начала подпрограммы. [19]
Таким образом, адресный стек ( стек возврата) после каждого выполнения подпрограммы обеспечивает переход к оператору, записанному в программе после оператора обращения к подпрограмме. После каждого такого обращения содержимое адресного стека смещается вверх, и максимальное число вложений подпрограмм определяется числом регистров адресного стека. [20]
При вызове из памяти первого шага оператора безусловного перехода БПаЬ следующий за ним адрес перехода засылается в счетчик шагов, и выполнение программы продолжается с этого адреса. При вызове из памяти первого шага оператора перехода к подпрограмме ПП аЪ следующий за ним адрес ab также засылается в счетчик шагов, одновременно адресный стек ( см. рис. 1.4) смещается вверх и прежнее содержимое счетчика, равное адресу второго шага оператора перехода к подпрограмме, засылается в соседний регистр адресного стека. После выполнения подпрограммы с заданного адреса перехода считывание записываемого в конце подпрограммы оператора В / О ( Возврат) приводит к смещению адресного стека вниз и занесению в счетчик шагов прежнего содержимого соседнего регистра адресного стека, равного адресу второго шага оператора обращения к подпрограмме. После этого содержимое счетчика шагов увеличивается на единицу, и из программной памяти вызывается оператор, записанный в программе после оператора обращения к подпрограмме. [21]
При вызове из памяти первого шага оператора безусловного перехода БПаЬ следующий за ним адрес перехода засылается в счетчик шагов, и выполнение программы продолжается с этого адреса. При вызове из памяти первого шага оператора перехода к подпрограмме ПП аЪ следующий за ним адрес ab также засылается в счетчик шагов, одновременно адресный стек ( см. рис. 1.4) смещается вверх и прежнее содержимое счетчика, равное адресу второго шага оператора перехода к подпрограмме, засылается в соседний регистр адресного стека. После выполнения подпрограммы с заданного адреса перехода считывание записываемого в конце подпрограммы оператора В / О ( Возврат) приводит к смещению адресного стека вниз и занесению в счетчик шагов прежнего содержимого соседнего регистра адресного стека, равного адресу второго шага оператора обращения к подпрограмме. После этого содержимое счетчика шагов увеличивается на единицу, и из программной памяти вызывается оператор, записанный в программе после оператора обращения к подпрограмме. [22]
При считывании из памяти в регистр КОП кода оператора обращения к подпрограмме содержимое адресного стека смещается вверх ( предыдущее содержимое регистра-счетчика заносится в следующий регистр адресного стека), а в регистр-счетчик заносится адрес обращения к подпрограмме. После этого содержимое регистра-счетчика увеличивается на единицу, и в регистр КОП вызывается код оператора подпрограммы с адресом, равным содержимому регистра-счетчика. После выполнения подпрограммы в регистр КОП считывается код записанного в конце подпрограммы оператора возврата, исполнение которого приводит к смещению вниз содержимого адресного стека ( стека возврата), и в регистре-счетчике оказывается адрес адреса обращения к подпрограмме. После автоматического увеличения содержимого регистра-счетчика на единицу в регистр КОП вызывается код оператора с адресом, на единицу большим адреса адреса обращения к подпрограмме, записанного в программе после оператора обращения к подпрограмме. [23]
При вызове из памяти первого шага оператора безусловного перехода БПаЬ следующий за ним адрес перехода засылается в счетчик шагов, и выполнение программы продолжается с этого адреса. При вызове из памяти первого шага оператора перехода к подпрограмме ПП аЪ следующий за ним адрес ab также засылается в счетчик шагов, одновременно адресный стек ( см. рис. 1.4) смещается вверх и прежнее содержимое счетчика, равное адресу второго шага оператора перехода к подпрограмме, засылается в соседний регистр адресного стека. После выполнения подпрограммы с заданного адреса перехода считывание записываемого в конце подпрограммы оператора В / О ( Возврат) приводит к смещению адресного стека вниз и занесению в счетчик шагов прежнего содержимого соседнего регистра адресного стека, равного адресу второго шага оператора обращения к подпрограмме. После этого содержимое счетчика шагов увеличивается на единицу, и из программной памяти вызывается оператор, записанный в программе после оператора обращения к подпрограмме. [24]
При вызове из памяти первого шага оператора безусловного перехода БПаЬ следующий за ним адрес перехода засылается в счетчик шагов, и выполнение программы продолжается с этого адреса. При вызове из памяти первого шага оператора перехода к подпрограмме ПП аЪ следующий за ним адрес ab также засылается в счетчик шагов, одновременно адресный стек ( см. рис. 1.4) смещается вверх и прежнее содержимое счетчика, равное адресу второго шага оператора перехода к подпрограмме, засылается в соседний регистр адресного стека. После выполнения подпрограммы с заданного адреса перехода считывание записываемого в конце подпрограммы оператора В / О ( Возврат) приводит к смещению адресного стека вниз и занесению в счетчик шагов прежнего содержимого соседнего регистра адресного стека, равного адресу второго шага оператора обращения к подпрограмме. После этого содержимое счетчика шагов увеличивается на единицу, и из программной памяти вызывается оператор, записанный в программе после оператора обращения к подпрограмме. [25]
Подпрограмма - программа решения некоторой задачи, оформленной по правилам определенной системы программирования так, что она может быть использована в качестве конструктивного элемента при решении более общей задачи. В программах для ПМК подпрограммы располагаются в конце основной программы. Каждая подпрограмма оканчивается командой возврата из подпрограммы В / О, а в основной программе имеется команда обращения к подпрограмме ПП N, где N - адрес, в котором расположена подпрограмма. При использовании подпрограмм происходит сложный обмен между регистрами адресного стека. [26]
![]() |
Структурная схема микро - ЭВМ. [27] |
Арифметическое логическое устройство обеспечивает двоичное сложение И вычитание, сдвиг данных на любое число разрядов в любом направлении. Регистр, связанный с АЛУ, является регистром результата и называется аккумулятором А. Он выполняет операции простого и циклического сдвигов, хранит один из операндов, служит в качестве приемного регистра для запоминания результатов, полученных АЛУ. Отдельный выход АЛУ поступает на регистр адреса памяти РАЛ, затем через буферное устройство БУ - на выходную шину. Программный счетчик ПСч содержит адрес следующей команды, указывает, в какой части программы находится МП, и обеспечивает прохождение микропроцессором всей программной памяти. Команды, считанные из памяти, поступают в регистр команд РК. С помощью регистра РК и дешифратора Дш определяют позиции разрядов и подают сигналы на схему УУС, обеспечивающую необходимую последовательность операций в МП при выполнении команды. Обычно МП содержит два набора регистров, которые с помощью мультиплексора ( М) подключаются к информационной шине ИШ: один - регистр сверхоперативного запоминающего устройства ( СОЗУ) - служит для временного запоминания данных при их преобразованиях, другой - адресный стек ( АС) - в основном для запоминания адресных ячеек в процессе вычисления и воспроизведения их в обратном порядке. [28]
![]() |
Структурная схема микро - I п - ц. [29] |
Арифметическое логическое устройство обеспечивает двоичное сложение и вычитание, сдвиг данных на любое число разрядов в любом направлении. Регистр, связанный с АЛУ, является регистром результата и называется аккумулятором А. Он выполняет операции простого и циклического сдвигов, хранит один из операндов, служит в качестве приемного регистра для запоминания результатов, полученных АЛУ. Отдельный выход АЛУ поступает на регистр адреса памяти РАЛ, затем через буферное устройство БУ - на выходную шину. Программный счетчик ПСч содержит адрес следующей команды, указывает, в какой части программы находится МП, и обеспечивает прохождение микропроцессором всей программной памяти. Команды, считанные из памяти, поступают в регистр команд РК. С помощью регистра РК и дешифратора Дш определяют позиции разрядов и подают сигналы на схему УУС, обеспечивающую необходимую последовательность операций в МП при выполнении команды. Обычно МП содержит два набора регистров, которые с помощью мультиплексора ( М) подключаются к информационной шине ИШ: один - регистр сверхоперативного запоминающего устройства ( СОЗУ) - служит для временного запоминания данных при их преобразованиях, другой - адресный стек ( АС) - в основном для запоминания адресных ячеек в процессе вычисления и воспроизведения их в обратном порядке. [30]