Программирование на Ассемблере

       

Использование функций


Функции позволяют оформлять независимые  участки

программы в виде отдельных модулей, что значительно упрощает  отладку программы и уменьшает ее размер. Ниже будут рассмотрены команды  для  работы  с  функциями,  структура  функций и способы передачи параметров. Вначале даются общие положения для  функций.  Команды для работы с процедурами(функциями)

Основные команды для работы с функциями приведены в табл. 11.1, а директивы в табл. 11.2

Таблица 11.1 Команды для работы с функциями



Назначение

Общий вид команды

Выполняемые действия

Вызов функции

call операнд[14]

push EIP

MOV EIP, операнд

Возврат в вызывающую программу

ret [Число]

Esp+=Число

Pop EIP

Таблица 11.2. Директивы для работы с функциями

Назначение

Общий вид директивы

Заголовок функции

имя proc или proc имя

Директива конца

[Имя] endp или endp [Имя]

Общий вид функции для режима masm:

имя  proc

[; Сохранение используемых регистров]

.................

[; Восстановление используемых регистров]

ret

имя  endp

Общий вид функции для режима ideal:

proc имя

[; Сохранение используемых регистров]

.................

[; Восстановление используемых регистров]

ret

endp имя 

Функция  одномодульной программы должна быть частью сегмента кодов. Может быть задано несколько функций  последовательно.При выполнении программ переход к функции необходимо   выполнять только по команде call, а не в результате естественного  выполнения команд, поэтому функции помещаются или  в  начало  сегмента кода до точки входа, или в конце после команд для выхода из программы.



Содержание раздела