[Назад] [Далее]

11.1.3. Адресация

Регистровый операнд всегда начинается с символа «%»:

// 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

п»ї
"target=_blank><\/a>") //-->