Сложные программы, как правило, включают в себя подпрограммы, т.е. создается алгоритм основной программы и в основной программе используются команды обращения к подпрограмме.
Синтаксис команды обращения к подпрограмме
Б1 Б2 Б3 | CALL |
младшие разряды | адрес ячейки памяти ЗУ с командой подпрогрпммы |
старшие разряды |
([SP-1]) ←(CPL)возвр.
([SP-2]) ←(CPH)возвр.
(SP)←(SP)-2 ; измен. адр. вершины стека.
(CP)←([< Б3>< Б2>]).
Последовательность выполнения команды обращения к подпрограмме CALL.
В стековую память записывается 16-ти разрядный адрес ячейки памяти возврата после выполнения подпрограммы (CPL)возвр. , (CPH)возвр.
В указатель счетчика команд (PC) заносится адрес первой ЯП команды подпрограммы с КОП ([<Б3><Б2>]). . Поскольку стековая память использована для хранения адреса возврата из подпрограммы в основную программу, то изменяетсязначение указателя вершины стека (уменьшается на 2, т.е. SP=SP-2).
Команда возврата из подпрограммы
Б1 | RET |
(CPL) ← ([SP+1]), (запись в счетчик команд PC адреса
(CPH) ← ([ SP+2]) возврата в основную программу)
(SP)←(SP)+2, (изменяется адрес вершины стека )
В счетчик команд PC записывается содержимое стековой памяти по адресу ([SP+1]) и ([SP+2]), т.е. адрес возврата в основную программу.
После выполнения команды значение указателя стека SP увеличивается на 2, т.е. SP=SP+2.
6.3. Команда HLT – останов выполнения программы
Б1 | HLT |
МП прекращает выполнение программы и ждет указаний.
Пустая команда
Б1 | NOP |
Эта команда используется для резервирования ячеек при написании программы. МП никаких действий не выполняет, но осуществляет первый этап (чтение и дешифрование). Кроме того, команда может применяться при написании программы временной задержки (для изучаемого симулятора AVSIM85 время выполнения 1-ого этапа команды четыре секунды).
Дата добавления: 2015-10-09; просмотров: 865;