Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vecher_lektsii_Beregovoy.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

В более общем случае операнды могут входить как составные части в более сложные образования, называемые выражениями. Типы операторов

Возможные типы операторов ассемблера и синтаксические правила формирования выражений ассемблера.

  • Арифметические операторы

  • Операторы сдвига

  • Операторы сравнения

  • Логические операторы

  • Индексный оператор

  • Оператор переопределения типа

  • Оператор переопределения сегмента

  • Оператор именования типа структуры

  • Оператор получения сегментной составляющей адреса выражения

  • Оператор получения смещения выражения  

  • Арифметические операторы. К ним относятся:

    • унарные “+” и “–”;

    • бинарные “+” и “–”;

    • умножения “*”;

    • целочисленного деления “/”;

    • получения остатка от деления “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 позволяет получить значение смещения выражения в байтах относительно начала того сегмента, в котором выражение определено

data

pole 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 в регистр АХ.

  1. Непосредственная - непосредственный операнд (константа) присутствует в команде.

Обозначение - < константное выражение > .

mov AX, 093Ah ; занести константу 093Ah в регистр АХ.

  1. Прямая - исполнительный адрес операнда присутствует в команде.

Обозначение - < переменная >+/-< константное выражение >.

  • mov AX, WW ; переслать в АХ слово памяти с именем WW

  • mov BX, WW+2 ; переслать в ВХ слово памяти отстоящее от переменной с

  • ; именем WW на 2 байта.

  1. Регистровая косвенная - регистр содержит адрес операнда.

  • Обозначение - [< регистр >],

  • < регистр > - ВХ, ВР, SI, DI.

mov [ BX ], CL ; переслать содержимое регистра CL по адресу, находящемуся

; в регистре ВХ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]