Программирование игр для Windows. Советы профессионала


Директива USES - часть 2


Тип задается в поле type.

Если вы пишите процедуру, в которую передаете три целых величины, и будете использовать регистры SI, DI и СХ, то должны включить следующий оператор:

far proc USES SI DI СХ, integer_1:WORD, integer_2:WORD,

                             integer_3:WORD

Используя директивы PROC и USES, давайте перепишем процедуру из Листинга 2.2.                                 

Листинг 2.3. Модифицированная версия Add_Int.

.MODEL MEDIUM,С              ; использовать модель MEDIUM ; и соглашения по вызову Си

.CODE                        ; начало кода

 

PUBLIC _Add_Int             ; объявляем функцию как общедоступную

_Add_lnt PROC USES integer_1 :WORD, integer_2 :WORD

mov AX,integer_l            ; загрузить первый операнд в AХ

add AX,integer_2       ; сложить второй операнд с AХ

_Add_Int ENDP          ; конец процедуры

END                    ; конец кода

Как видно из Листинга 2.3, тяжкое бремя сохранения регистра ВР, создания и уничтожения стекового фрейма теперь отдано на откуп ассемблеру. Более того мы получили прямой доступ к параметрам integer 1 и integer 2.




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



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