
ПТСПЦУВСБ / 4. Операции и выражения в ассемблере
.docx4. Операции и выражения в ассемблере.
1. Арифметические операции.
+, -, *, /, mod (эти операции выполняются на этапе трансляции)
pi_int EQU 31416/1000 - целая часть
pi_rem EQU 31416 mod 1000 - дробная часть
SHR_N - сдвиговые операции (вправо и влево на N двоичных разрядов.
SHL_R
maska EQU 110010b
maska2 EQU maska SHR_2
2. Логические операции.
Эти операции подразделяются на операции отношения (EQ, NE, LT, LE, GT,GE) и на непосредственно логические (AND, OR, XOR, NOT).
Истина — 0FFFFh
Ложь — 0
mov ax, ((b LT 10) AND 5) OR ((b GE 10) AND 15)
при b=3 предыдущая команда означает: mov ax, 5.
3. Операции со счетчиком размещения программы (СРП).
LC- Location Counter
$- текущее значение СРП, предопределенная переменная.
Message DB ‘Hello!!!’
Mes_leght=$-Message
ORG- директива принудительной установки СРП на константу.
ORG 100h – для *.com
ORG $+99h – изменение СРП на 99 байт по отношению к текущему значению.
EVEN- задает четное значение СРП (выравнивает СРП на ближайшее четное большее текущего).
4. Оператор изменения типа.
<тип> PTR переменная или метка.
B_TABLE DB 40DUP
mov ax, B_TABLE+10
mov ax, word ptr B_TABLE+10
x_word EQU 0FFFCh
xor ax, ax
add al, byte ptr xword ; (AL)=FCh
CALL FAR PTR My_Sub
5. Операции выделения сегментной части адреса и смещения.
SEG - переменная (DS)
OFFSET - метка (СS)
SIZE имя переменной - определяет размер переменной в байтах.