assem / Ответы по пунктам / 016
.docx-
Определение сегмента/процедуры.
Процедура - это список инструкций, который можно многократно вызывать из различных точек программы. Процедуры используют для оформления фрагментов кода, встречающихся в тексте программы несколько раз. Это позволяет значительно сократить длину программы.
Общая форма:
<имя_ сегмента> SEGMENT [тип_подгонки]
[тип_связи]
[‘класс’]
<тело сегмента>
<имя_сегмента> ENDS
В этой форме описываются все 4 сегмента программы. Отличаться они будут только “типом связи” и “классом”.
[тип подгонки]- PARA- означает, что адрес сегмента должен быть кратен 16.
[тип связи]- PUBLIC, т.е. доступный. Для стекового сегмента – stack.
[‘класс’] – для код. сег.-‘code’, сегмент данных – ‘data’, стековый сегмент – ‘stack’.
При пользовании процедурой различают описание процедуры и ее реализацию. Описание процедуры делается с помощью псевдооператоров PROC и ENDP, которые отмечают начало и конец процедуры. Возврат из процедуры осуществляется оператором RET. Обращение к процедуре для ее реализации осуществляется командой CALL. А возврат из процедуры осуществляется на следующую по порядку команду после обращения к процедуре.