Assembler
постоянные, или непосредственные, операнды ,адресные операнды .перемещаемые операнды ,счетчик адреса ,регистровый операнд .базовый и индексный операнды .структурные операнды ,Записи ,Рассмотрим подробнее характеристику операндов из приведенной классификации: Постоянные или непосредственные операнды - число, строка, имя или выражение, имеющие некоторое фиксированное значение. Имя не должно быть перемещаемым, то есть зависеть от адреса загрузки программы в память. К примеру, оно может быть определено операторами equ или =.
num equ 5
imd = num-2
mov al,num ;эквивалентно mov al,5
;5 здесь непосредственный операнд
add [si],imd ; imd=3 - непосредственный операнд
mov al,5 ;5 - непосредственный операнд
В данном фрагменте определяются две константы, которые затем используются в качестве непосредственных операндов в командах пересылки mov и сложения add. Адресные операнды - задают физическое расположение операнда в памяти с помощью указания двух составляющих адреса: сегмента и смещения (рис. 4).
•Рис. 4. Синтаксис описания адресных операндов
К примеру:
mov ax,0000h
mov ds,ax
mov ax,ds:0000h ;записать слово в ax из области памяти по
;физическому адресу
0000:0000
•Здесь третья команда mov имеет адресный операнд.
•Перемещаемые операнды - любые символьные имена, представляющие некоторые адреса памяти. Эти адреса могут обозначать местоположение в памяти некоторых инструкции (если операнд - метка) или данных (если операнд - имя области памяти в сегменте данных).Перемещаемые операнды отличаются от адресных тем, что они не привязаны к конкретному адресу физической памяти. Сегментная составляющая адреса перемещаемого операнда неизвестна и будет определена после загрузки программы в память для выполнения.
К примеру:
data segment
mas_w dw 25 dup (0)
: