МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ И СИСТЕМА ПРЕРЫВАНИЙ


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

4.1. СРЕДСТВА МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ

4.1.1. ПРОЦЕДУРА.

Процедурой (или подпрограммой) на­зывается особым образом организованная последовательность команд процессора, выполнение которой вызывается специаль­ной командой вызова процедуры. Переход к процедуре назы­вается вызовом процедуры и производится командой CALL, a соответствующий переход назад, к выполнению команды, следующей непосредственно за командой вызова CALL, назы­вается возвратом из процедуры. Возврат из процедуры выпол­няется по команде возврата RET. Команды, составляющие процедуру, располагаются в последовательных ячейках памя­ти. Адресом процедуры является адрес ее первой команды.

а) Программа Процедура PROC_1

CALL PROC_1

CALL PROC_1

Процедура PROC_2 Процедура PROC_3

б) Программа

Рис. 4.1. Многократные вызовы процедур (а)

и вложенные процедуры (б)

Если к одной и той же процедуре делается несколько вызовов из разных мест, возврат после каждого такого вызо­ва осуществляется к команде, находящейся после команды вы­зова процедуры (рис.4.1). Следовательно, в памяти нужно хра­нить только одну копию процедуры, даже если процедура вы­зывается несколько раз. При вложении процедур каждый воз­врат производится в соответствующую, а не в старшую по иерархии, процедуру.

Представление программы в виде совокупности процедур обеспечивает возможность разделения кода программы на от­ дельные модули, которые можно по отдельности разрабаты­вать, тестировать и документировать. Процедуры можно хранить в библиотеках и использовать несколькими программами,
в том числе и одновременно. Иными словами, процедуры позволяют использовать удобства модульного программирования, что сокращает размер кода программы и уменьшает трудоемкость создания программ. Основной недостаток процедур за­ключается в необходимости использования дополнительных команд CALL и RET.

Загрузка...