Понятие и структура макроопределителя

Макроопределение (макрос) ­– участок программы, которому присвоено имя и который ассемблируется всякий раз, когда ассемблер встречает это имя в тексте программы.

Макроопределение задается с помощью директивы MACRO...ENDM.

Структура макроопределения:

[ИМЯ] macro [список_формальных_параметров]

----------------------

тело_макроопределения

----------------------

Endm

10) Понятие и алгоритм цепочечных команд (не полный)

Цепочечная команда позволяет проводить действия над блоками памяти, представляющими собой последовательности элементов следующего размера:

8 бит — байт;

16 бит — слово;

32 бита — двойное слово.

Команды циклического сдвига

Циклический сдвиг представляет сбой операцию сдвига, при которой выдвинутый бит занимает освободившийся разряд. Существуют следующие команды циклического сдвига:

ROR;Циклический сдвиг вправо
ROL;Циклический сдвиг влево
RCR;Циклический сдвиг вправо с переносом
RCL;Циклический сдвиг влево с переносом

Следующая последовательность команд иллюстрирует операцию циклического сдвига ROR:

MOV CL,03; BX:
MOV BX,10110111B; 10110111
ROR BX,1; 11011011;Сдвиг вправо на 1
ROR BX,CL; 01111011;Сдвиг вправо на 3

Первая команда ROR при выполнении циклического сдвига переносит правый единичный бит регистра BX в освободившуюся левую позицию. Вторая команда ROR переносит таким образом три правых бита.

Управляющие структуры Else и Case

Пример_1:
if (((х > у) && (z < t)) || (a!= b)) c = d;

можно представить на ассемблере как:

; проверка условия

mov ax,A

cmp ах,В

jne then; если а!= b - условие выполнено

mov ах,X

cmp ax,Y

jng endif; если х <= у - условие не выполнено

mov ax,Z

cmp ах,Т

jnl endif; если z >= t - условие не выполнено

then:; условие выполняется

mov ax,D

mov С,ах

endif:

Пример_2:

Пусть переменная I принимает значения от 0 до 2, и в зависимости от значения надо выполнить процедуры case0, case1 и case2:

mov ax,I cmp ax,0; проверка на 0 jne not0 call case0 jmp endcasenot0: cmp ax,1; проверка на 1 jne not1 call case1 jmp endcasenot1: cmp ax,2; проверка на 2 jne not2 call case2not2:endcase:

Структура процедуры

имя-процедуры PROC [параметры]; начало процедуры RET; команда возврата в точку вызова процедуры имя-процедуры ENDP; конец процедуры

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: