Описание и обращение к процедуре. Особенности процедур в Ассемблере
Синтаксис описания процедуры следующий: Имя_процедуры PROC [[модификатор_языка] язык] [расстояние] [ARG список_аргументов] [RETURNS список_аргументов] [LOCAL список_аргументов] [USES список_регистров] Команды, директивы языка макроассемблера RET [имя_процедуры] ENDP Разница описания процедуры на языке Ассемблера и на языках высокого уровня только в деталях, которые хорошо усваиваются только на практике. Принципиальных различий немного, среди которых: - атрибут расстояние. Он может принимать значения NEAR и FAR. 1-ый вариант – для обращения к процедуре, описанной в текущем сегменте кода, 2-ой вариант – для обращения к процедуре из другого сегмента кода (внешней по отношению к текущему сегменту кода). По умолчанию предполагается NEAR.; - процедуру можно помещать в любом месте программы, но таким образом, чтобы управление передавалось процедуре только в нужное время. Учитывая это, процедуру можно размещать в начале программы (до первой исполняемой команды) или в конце программы (после возвращения управления операционной системе) или в другом модуле.; - Обращение к процедуре происходит по команде CALL [модификатор] имя_процедуры Модификатор принимает такие же значения, как и в команде JMP, за исключением SHORT PTR. 54. Условные переходы при равенстве или неравенстве операндов. Какие флаги используются, и при каких значениях флагов происходит переход? В этой таблице отражается действие команд условного перехода при равенстве или неравенстве операндов по значениям анализируемых этими командами флагов:
|