· Постоянные или непосредственные операнды — число, строка, имя или выражение, имеющие некоторое фиксированное значение./* Имя не должно быть перемещаемым, то есть зависеть от адреса загрузки программы в память. К примеру, оно может быть определено операторами equ или =. */
num equ 5imd = num-2 mov al,num ;эквивалентно mov al,5 ;5 здесь непосредственный операнд add [si],imd ; imd=3 - непосредственный операнд mov al,5 ;5 - непосредственный операнд Адресные операнды — задают физическое расположение операнда в памяти с помощью указания двух составляющих адреса: сегмента и смещения
mov ax,0000h mov ds,ax mov ax,ds:0000h ;записать слово в ax из области памяти ; по физическому адресу 0000:0000 Счетчик адреса — специфический вид операнда. Он обозначается знаком $.
транслятор подставляет вместо него текущее значение счетчика адреса.
jmp $+3 ; безусловный переход на команду mov команда jmp занимает 2 байта.
cld ; длина команды cld составляет 1 байт
mov al,1
· Регистровый операнд — это просто имя регистра. В программе на ассемблере можно использовать имена всех регистров общего назначения и большинства системных регистров.
mov al,4 ;константу 4 заносим в регистр al mov dl,pass+4 ;байт по адресу pass+4 в регистр dl add al,dl ;команда с регистровыми операндами В более общем случае операнды могут входить как составные части в более сложные образования, называемые выражениями.