Sdílet prostřednictvím


Použití operátorů v blocích __asm

Konkrétní společnosti Microsoft

__asm Bloku nelze použít jako c nebo C++ určitých provozovatelů << operátor.Však operátory sdílené c a jazyk MASM, například * operátor, jsou interpretovány jako operátory jazyka symbolických adres.Pro instanci mimo __asm blokovat hranatých závorek ([]) jsou interpretovány jako dolní indexy polí, která c automaticky přizpůsobí velikost prvku matice uzavření.Uvnitř __asm blok, silikon hospodářský subjekt index jazyk MASM bez měřítka offsetu výnosy z datového objektu nebo popisku (nikoli pouze pole).Následující kód ukazuje rozdíl:

int array[10];

__asm mov array[6], bx ;  Store BX at array+6 (not scaled)

array[6] = 0;         /* Store 0 at array+24 (scaled) */

První odkaz na array nezmění, ale je druhý.Všimněte si, že můžete použít typu operátor dosáhnout měřítka na základě konstanta.Například následující příkazy jsou rovnocenné:

__asm mov array[6 * TYPE int], 0 ; Store 0 at array + 24

array[6] = 0;                   /* Store 0 at array + 24 */

Konec konkrétní společnosti Microsoft

Viz také

Referenční dokumentace

Pomocí __asm bloky c nebo C++