Организация многомодульных программ

RET

CALL

Дальний вызов и возврат

RET

CALL ссылка

Ближний вызов и возврат

1. IP ® стек

2. ссылка (хххх) ® IP

*IP – адрес следующей команды

стек ® IP

 

 

1. CS ® стек

2. IP ® стек

3. Смещение ® IP [XXXX ® IP]

4. Начало сегмента ® CS [YYYY ® CS]

1. Стек ® IP

2. Стек ® CS

Коды команд для внутрисегментного и межсегментного вызовов различны. Транслятор определяет автоматически код команды по описанию вызываемой процедуры и формирует коды команд в соответствии с типом процедуры.

При вызове процедуры необходимо решать две проблемы:

1. Вызов и возврат из процедуры.

2. Передача данных между процедурами.

Решение первой проблемы было рассмотрено ранее, решение второй проблемы может осуществляться тремя способами:

1. Передача данных через регистры.

2. Передача данных через механизм внешних ссылок и внешних переменных.

3. Передача данных через стек.