мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
asm:lesson4 [13/10/2010 20:06] arabusovasm:lesson4 [19/10/2010 20:00] (текущий) ybezrukov
Строка 1: Строка 1:
 ====== Урок 4 ====== ====== Урок 4 ======
 +
  
 ===== Процедуры и оператор CALL ===== ===== Процедуры и оператор CALL =====
  
 Типичный синтаксис процедуры: Типичный синтаксис процедуры:
 +<code>
  
                     NAME     PROC FAR                     NAME     PROC FAR
Строка 9: Строка 11:
                          .                          .
                     NAME     ENDP                     NAME     ENDP
 +</code>
 Операнд FAR информирует систему о том, что данный адрес явля Операнд FAR информирует систему о том, что данный адрес явля
 ется точкой входа для выполнения,  а директива ENDP определя ется точкой входа для выполнения,  а директива ENDP определя
Строка 18: Строка 20:
 Обратите внимание на следующие особенности: Обратите внимание на следующие особенности:
  
- директивы PROC по меткам  B10  и C10 имеют операнд NEAR+  * директивы PROC по меткам  B10  и C10 имеют операнд NEAR
 для указания того,  что эти процедуры находятся  в текущем  кодовом сегменте.  Во многих  последующих примерах для указания того,  что эти процедуры находятся  в текущем  кодовом сегменте.  Во многих  последующих примерах
 этот операнд опущен,  так  как  по  умолчанию ассемблер этот операнд опущен,  так  как  по  умолчанию ассемблер
 принимает тип NEAR. принимает тип NEAR.
- Каждая  процедура имеет уникальное  имя и  содержит собственную директиву ENDP для указания конца процедуры. +  * Каждая  процедура имеет уникальное  имя и  содержит собственную директиву ENDP для указания конца процедуры. 
- Команда RET всегда  выполняет возврат в  вызывающую программу. +  Команда RET всегда  выполняет возврат в  вызывающую программу. 
-Использование процедур дает  хорошую возможность организо +Использование процедур дает  хорошую возможность организовать  логическую  структуру программы.  Кроме того, операнды 
-вать  логическую  структуру программы.  Кроме того, операнды +для команды CALL могут иметь значения,  выходящие за границу от -128 до +127 байт. 
-для команды CALL могут иметь значения,  выходящие за границу +Технически управление  в процедуру типа  NEAR  может быть передано с помощью команд перехода или даже  обычным построчным  кодированием.  Но в  большенстве  случаев рекомендуется использовать команду CALL  для передачи  управления  в процедуру и команду RET для возврата.
-от -128 до +127 байт. +
-Технически управление  в процедуру типа  NEAR  может быть +
-передано с помощью команд перехода или даже  обычным построч +
-ным  кодированием.  Но в  большенстве  случаев рекомендуется +
-использовать команду CALL  для передачи  управления  в проце +
-дуру и команду RET для возврата.+
  
-==== Прерывания ====+===== Прерывания =====
 Для обработки событий, происходящих асинхронно по отношению к выполнению программы, лучше всего подходит механизм прерываний. Прерывание можно рассматривать как некоторое событие в системе, которое нужно проанализировать сразу же, как только оно произошло (например: нажатие клавиши). Как только происходит это событие, вызывается процедура обработки прерывания, которая по завершении своей работы возвращает управление прерванной программе. Для обработки событий, происходящих асинхронно по отношению к выполнению программы, лучше всего подходит механизм прерываний. Прерывание можно рассматривать как некоторое событие в системе, которое нужно проанализировать сразу же, как только оно произошло (например: нажатие клавиши). Как только происходит это событие, вызывается процедура обработки прерывания, которая по завершении своей работы возвращает управление прерванной программе.
 Кроме асинхронных событий прерывание может быть вызвано из программы командой Кроме асинхронных событий прерывание может быть вызвано из программы командой