Режимы адресации
Типы операторов
Возможные типы операторов ассемблера и синтаксические правила формирования выражений ассемблера.
- Арифметические операторы
- Операторы сдвига
- Операторы сравнения
- Логические операторы
- Индексный оператор
- Оператор переопределения типа
- Оператор переопределения сегмента
- Оператор именования типа структуры
- Оператор получения сегментной составляющей адреса выражения
- Оператор получения смещения выражения
– Арифметические операторы. К ним относятся:
- унарные “+” и “–”;
- бинарные “+” и “–”;
- умножения “*”;
- целочисленного деления “/”;
- получения остатка от деления “mod”.
Эти операторы расположены на уровнях приоритета 6, 7, 8,
tab_size equ 50 ;размер массива в байтахsize_el equ 2 ;размер элементов;вычисляется число элементов массива и заносится в регистр cx mov cx,tab_size / size_el ;оператор “/”Операторы сдвига выполняют сдвиг выражения на указанное количество разрядов, mask_b equ 10111011 mov al,mask_b shr 3 ;al=00010111– Логические операторы выполняют над выражениями побитовые операции. Выражения должны быть абсолютными, то есть такими, численное значение которых может быть вычислено транслятором.
flags equ 10010011 mov al,flags xor 01h ;al=10010010;пересылка в al поля flags с ;инвертированным правым битом– Индексный оператор [ ]транслятор их наличие воспринимает как указание сложить значение выражение_1 за этими скобками с выражение_2, заключенным в скобки
mov ax,mas[si] ;пересылка слова по адресу mas+(si) в регистр ax
– Оператор получения смещения выражения offset позволяет получить значение смещения выражения в байтах относительно начала того сегмента, в котором выражение определено
datapole dw 5....code...mov ax,seg pole
mov es,ax
mov dx,offset pole ;теперь в паре es:dx полный адрес pole
1. Регистровая прямая - операнд находится в регистре.
· Обозначение - <регистр>,
· < регистр > - АХ, ВХ, СХ, DX, SI, DI, BP, SP, AL, BL, СL, DL, AH, BH, CH, DH.
Пример:
mov АХ,SI ; переслать содержимое регистра SI в регистр АХ.
2. Непосредственная -непосредственный операнд (константа) присутствует в команде.
Обозначение - < константное выражение > .
mov AX, 093Ah ; занести константу 093Ah в регистр АХ.
3. Прямая - исполнительный адрес операнда присутствует в команде.
Обозначение - < переменная >+/-< константное выражение >.
· mov AX, WW ; переслать в АХ слово памяти с именем WW
· mov BX, WW+2 ; переслать в ВХ слово памяти отстоящее от переменной с
· ; именем WW на 2 байта.
4. Регистровая косвенная - регистр содержит адрес операнда.
· Обозначение - [< регистр >],
· < регистр > - ВХ, ВР, SI, DI.
mov [ BX ], CL ; переслать содержимое регистра CL по адресу, находящемуся
; в регистре ВХ.