Иллюстрированный самоучитель по Assembler


Пример 3-8. Вызов подпрограммы без параметров - часть 3


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

В примере 3-8 подпрограмма не требовала параметров. Чаще, однако, подпрограмма должна принимать один или несколько параметров и возвращать результат. В этом случае необходимо организовать взаимодействие основной программы и подпрограммы. Никаких специальных средств языка для этого не существует; передачу параметров в подпрограмму и из нее программист организует по своему усмотрению. Для передачи параметров как в одну, так и в другую сторону можно использовать регистры общего назначения, ячейки памяти или стек. Например, нетрудно преобразовать подпрограмму delay из примера 3-8 так, чтобы ей можно было передавать величину требуемой задержки. Пусть эта величина (в числе шагов внешнего цикла) передается в регистре SI.

Пример 3-8а. Подпрограмма задержки с одним параметром, передаваемом в регистре SI

delay proc                ;Процедура- подпрограмма

push CX                   ;Сохраним СХ основной программы

mov CX,SI                ;Счетчик внешнего цикла

del1: push CX          ;Сохраним его

mov CX,0                 ;Счетчик внутреннего цикла

del2: loop del2        ;Внутренний цикл (64К шагов)

pop CX                    ;Восстановим внешний счетчик

loop del1                 ;Внешний цикл (2000 шагов)

pop CX                   ;Восстановим СХ программы




- Начало -  - Назад -  - Вперед -



Книжный магазин