Содержание лабораторной работы. Учитывая ограниченные возможности памяти при разработке программ, необходимо стремиться сделать их как можно короче

Учитывая ограниченные возможности памяти при разработке программ, необходимо стремиться сделать их как можно короче. С этой целью часть программы, которая неоднократно повторяется, или программа, которая часто используется, могут быть использованы в виде подпрограмм - последовательностей команд, выполнение которых может быть вызвано из любого места программы любое количество раз. Процесс передачи управления к подпрограмме называется ее вызовом.

Для вызова подпрограмм и возврата из них используются команды CALL<A2>,<AI> и RET.

При работе с подпрограммами используется стековая память. Стек - специально организованная область ОЗУ, используемая для временного сохранения данных или адресов. Число, записанное в стек последним, извлекается из него первым.

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

Автоматическое сохранение и восстановление адреса основной программы при выполнении подпрограмм позволяет сделать подпрограммы вложенными, то есть осуществить вызов одной подпрограммы из другой. Уровень вложенности определяется размером стека.

Существуют также команды условного вызова подпрограмм и возврата из них. Они позволяют вызвать подпрограмму и возвратиться из нее по определенному состоянию заданных разрядов регистра признаков (аналогично командам условного перехода) без использования дополнительных команд.

Помимо команд вызова подпрограмм и возврата из них, со стеком можно обмениваться информацией с помощью команд PUSH<R> (записать в стек содержание обозначенного регистра МП БИС) и POP<R> (записать данные из стека в обозначенный регистр МП БИС)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: