Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы по экзамену(Асемблер).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
350.72 Кб
Скачать

30 Вопрос

Процедурой в ассемблере является все то, что в других языках называют подпрограммами, функциями, процедурами и т.д. Ассемблер не накладывает на процедуры никаких ограничений — на любой адрес программы можно передать управление командой CALL, и оно вернется к вызвавшей процедуре, как только встретится команда RET. Такая свобода выражения легко может приводить к трудночитаемым программам, и в язык ассемблера были включены директивы логического оформления процедур.

метка proc язык тип USES регистры ; TASM

или

метка proc тип язык USES регистры ; MASM/WASM

...

ret

метка endp

Все операнды PROC необязательны.

Тип может принимать значения NEAR и FAR, и если он указан, все команды RET в теле процедуры будут заменены соответственно на RETN и RETF. По умолчанию подразумевается, что процедура имеет тип NEAR в моделях памяти TINY, SMALL и COMPACT.

Операнд язык действует аналогично такому же операнду директивы .MODEL, определяя взаимодействие процедуры с языками высокого уровня. В некоторых ассемблерах директива PROC позволяет также считать параметры, передаваемые вызывающей программой. В этом случае указание языка необходимо, так как различные языки высокого уровня используют разные способы передачи параметров.

USES — список регистров, значения которых изменяет процедура. Ассемблер помещает в начало процедуры набор команд PUSH, а перед командой RET — набор команд POP, так что значения перечисленных регистров будут восстановлены.

21 Вопрос

MOV

(MOVe operand to/from system registers)

Пересылка операнда в системные регистры (или из них)

 

Схема команды: 

mov приемник,источник 

Назначение: пересылка данных между регистрами или регистрами и памятью.

Синтаксис Алгоритм работы: копирование второго операнда в первый. Состояние флагов после выполнения команды:

11

07

06

04

02

00

OF

SF

ZF

AF

PF

CF

r

R

r

r

r

Применение: Команда mov применяется для обмена данными между системными регистрами. Это одна из немногих возможностей доступа к содержимому этих регистров. Данную команду можно использовать только на нулевом уровне привилегий либо в реальном режиме работы микропроцессора.

.286

;переключение микропроцессора в защищенный

режим36:

        mov     eax,cr0

        bts     eax,0

        mov     cr0,eax

MOV

(MOVe operand)

Пересылка операнда

 

Схема команды: 

mov приемник,источник 

Назначение: пересылка данных между регистрами или регистрами и памятью.

Синтаксис Алгоритм работы: копирование второго операнда в первый операнд. Применение: Команда mov применяется для различного рода пересылок данных, при этом, несмотря на всю простоту этого действия, необходимо помнить о некоторых ограничениях и особенностях выполнения данной операции:

направление пересылки в команде mov всегда справа налево, то есть из второго операнда в первый;

значение второго операнда не изменяется;

оба операнда не могут быть из памяти (при необходимости можно использовать цепочечную команду movs);

лишь один из операндов может быть сегментным регистром;

желательно использовать в качестве одного из операндов регистр al/ax/eax, так как в этом случае TASM генерирует более быструю форму команды mov.

 

        mov     al,5

        mov     bl,al

        mov     bx,ds