| [Назад] [Далее] | ![]() |
Регистровый операнд всегда начинается с символа «%»:
// xor edx,edx
xorl %eax,%eax
Непосредственный операнд всегда начинается с символа «$»:
// mov edx,offset variable
movl $variable,%edx
Косвенная адресация использует немодифицированное имя переменной:
// push dword ptr variable
pushl variable
Более сложные способы адресации удобнее рассматривать как варианты максимально сложного способа — по базе с индексированием, и сдвигом:
// mov eax,base_addr[ebx+edi*4] (наиболее общий случай)
movl base_addr(%ebx,%edi,4),%еах
// lea eax,[eax+eax*4]
leal (%еах,%еах,4),%еах
// mov ax,word ptr [bp-2]
movw -2(%ebp),%ax
// mov edx,dword ptr [edi*2]
movl (,%edi,2),%edx