русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Подпрограммы как средства модульного программирования.


Дата добавления: 2015-08-14; просмотров: 738; Нарушение авторских прав


Часто встречается посл – ти команд, кот. выполняют одну ф – цию, используя разные данные. Эти посл – ти организуют в подпрограмме котор. может вызываться из основн. программ.

Подпрогр. – это законченный сегмент ( или модуль ) прграммы, кот. можно вызвать любое число раз. 273

Достоинства:

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

2. Каждую подпрогр. можно отладить отдельно.

3. Подпрограмма сокращает длину общей программы.

4. Отлаженные подпрогр. можно хранить в библиотеках и использовать в разных задачах.

Недостатки:

1. вызов и возврат подпрогр. затрачивает время, поэтому маленькие подпрогр. неэффективны.

Вызов подпрогр. осуществляется командой:

CALL SUBR адрес

 

При вызове подпр. МП заносит в вершину стека содержимое РС ( адрес след. команды за командой CALL ) – это адрес возврата.

 

RET – команда возврата ( при этом из вершины стека МП извлекает 2 – байтовое число и помещает в РС и происходит возврат в основ. программу )

Необходимо, чтобы подпрогр. не меняла содержимое регистров, кот. использ. в основн. программе. Для этого надо сохранить содержимое регистров:

  1. сохранить в стеке содержимое регистр. перед вызовом подпрогр., после восстановить.
  2. В самом начале самой подпрогр. занести в стек содержимое регистров и перед выходом из подпрогр. восстановить содержимое этих регистров.

 

SUBR: PUSH PSW; занести в стек ( A, F )

PUSH B; занести в стек ( В, С )

……

POP B; восстановить ( B, C )

POP PSW; восстановить ( А, F )

RET

SUBR1: …….

DCR A

RZ; возврат, если ( А ) = 0

INI B

POP D

POP H регистры не восстанавливаются

RET

SUBR1: ……

DCR A

JZ EXIT; выход, если ( А ) = 0

INX B

EXIT: POP D

POP H

RET

 

Чтобы подпрогр. правильно использовать необходимо произвести спецификацию, в кот. указывается:



1. входн. прог – мы подпрогр., т. е. где наход. данные, обрабатываемые подпрогр.

2. выходные пар – ры подпрогр., т. е. где будут размещаться рез – ты работы под – мы.

3. Какие регистры будут использ. в подпрогр.

 

В Ассемблере спецификац. размещается в комментариях в начале подпрограммы:

 

 

; подпрогр. сложения 2 – х целых чисел ( двоичных ) формата 8 * N

; входн. пар – ры: регистры В, С – адрес мл. байта слогаемого 1

; HL – адрес мл. байта слогаемого 2

; рег. Е – кол – во байт N числа

; выход. пар – ры: регистры В, С – адрес мл. байта рез – та

; CY – признак переполнения суммы

; используются все регистры

 

Возможно ситуация, когда после вызова подпр., она вызывает др., а следующ. ещё одну. Такие подпрограммы наз. вложенными.

 

Способы передачи пар – ов:

1. Передача пар – ов через яч. памяти ( через адреса яч. памяти ). К этим адресам может обращаться и основн. и подпрогр.

Такие пар – ры наз. глобальные ( общедоступные )

Недостаток – искажение пар – ов и трудность обнаружения виновника.

2. С помощью регистров МП – можно передать как данные, так и адреса яч. памяти.

Недостаток – малое кол – во регистров.

Такие пар – ры наз. локальными.

3. Передача пар – ов через стек – перед вызовом подпрогр. основн. прогр. заносит в стек пар – ры, кот. будут использ. в подпрогр., после она вызывает из стека пар –ры.

Осн. прогр.

LXI H, PARAM1

PUSH H

LXI H, PARAM2

PUSH H

LXI H, PARAM3

PUSH H

CALL SUBR

 

 

 

 


 

SUBR : POP H

SHLD ADRRET

POP H; в ( HL ) PARAM3

POP H; ( DE ) PARAM2

POP D; ( BC ) PARAM1

………

LHLD ADRRET

PCHL; возврат из подпрогр.

Достоинство – быстрота и неогран. число пар – ов.



<== предыдущая лекция | следующая лекция ==>
Процедура обработки данных. | Применение таблиц.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.342 сек.