Команды для работы с подпрограммами
Их всего две:
· JSR ( Jump to Subroutine - перейти на подпрограмму ) и
· RTS ( Return from Subroutine - возврат из подпрограммы ).
Команда 004RDD. Мнемокод: JSR
Работа команды JSR напоминает работу оператора GOSUB в программе на языке Бейсик. По команде JSR адрес возврата (адрес команды, следующей за командой JSR) запоминается в регистре, номер которого указывается в коде команды 004RDD вместо буквы "R", а содержимое самого регистра процессора до этого запоминается в стеке (в специально отведенном месте ОЗУ ). Если в коде команды указан номер регистра R7 (цифра "7"), то адрес возврата запоминается в стеке. Назначение поля адресации "DD" в коде команды такое же, что и для команды JMP. Рекомендации по выбору режима адресации те же, что и для команды JMP - в программах (или участках программы), которые могут в процессе работы (или при отладке) перемещаться в ОЗУ, следует использовать относительную адресацию. Команда 00020R. Мнемокод: RTS
Работа команды RTS напоминает работу оператора RETURN в программе на языке Бейсик. Команда RTS возвращает управление на адрес возврата, который по команде JSR был запомнен в регистре процессора. Номер этого регистра должен быть указан в коде данной команды 00020R вместо буквы "R". При выполнении команды содержимое указанного регистра загружается
в счетчик команд, а сам регистр загружается значением, взятым из стека (обычно это то значение регистра, которое было запомнено при выполнении команды JSR). Если в коде команды указан регистр R7 (цифра "7"), то запомненный по команде JSR адрес возврата загружается в счетчик команд из стека.
Команда JSR PC,@#7500 передает управление на подпрограмму, начинающуюся с адреса 7500. Возврат из подпрограммы производится командой RTS PC - выполнение основной программы продолжится с адреса 4004.
Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно взять верхнюю.
Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху), выталкивание (pop) — также только из вершины стека, при этом второй сверху элемент становится верхним.
Стеки широко используются в вычислительной технике — так для отслеживания точек возврата из подпрограмм стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров. Языки программирования высокого уровня используют стек вызовов для передачи параметров при вызове процедур.
Регистры процессора.
В АЛУ имеется набор программно доступных быстродействующих ячеек памяти, которые называются регистрами процессора (памяти). Эти регистры составляют основу архитектуры CPU. Среди обязательного набора регистров отметим следующие:
Регистры данных (служат для временного хранения промежуточных результатов при выполнении операций);
Регистр аккумулятор (служит для временного хранения результата выполнения команды);
Регистр-указатель стека (используется при операциях со стеком, т.е. такой структуры данных, которая работает по принципу «последним вошел, первым вышел», стек используется для организации подпрограмм);
Индексные регистры (указательные, базовые) (служат для хранения и вычисления адресов операндов памяти);
Регистры счетчики (используются для организации циклических участков в программах);
Регистры общего назначения (используются для любых целей и их назначение определяет программист при написании программы);
Кол-во регистров и связи между ними оказывают влияние на технологические сложности и стоимость CPU. С другой стороны наличие большого кол-ва регистров с богатым набором возможностей упрощает программирование и повышает гибкость ПО.
28.Функционирование ЭВМ с шинной организацией. Инициализация. /!\
Ищем в лекциях аналогичный вопрос.
Дата: 2019-02-02, просмотров: 507.