Az Assembly programozási nyelv

Nyelvi elemek

Általános

A nyelv sehol nem tesz különbséget kis és nagy betűk közt.

A tabulátor és szóköz karakterek white space-nek minősülnek.

Egy sorban a ; jel után következő karakterek megjegyzésnek minősülnek, amit az assembler figyelmen kívül hagy. Több soros megjegyzésre nincs lehetőség.

Címkék neveiben betűkön és számokon kívül tapasztalatom szerint lehet még _ @ $ ? jel is. A cimke neve nem kezdődhet számmal. A címkék nevei tetszőlegesen hosszúak lehetnek.

Megjegyzés: a címke egy szám a programszövegben, annak egy sorát jelöli, segítségével a programszöveg megcímkézett sorában folytatódhat a végrehajtás.

Numerikus literálok

Egész számokat bináris, oktális, decimális és hexadecimális alakban adhatunk meg. A számjegyek után egy betű jelzi a számrendszer alapját. Ha nem jelöljük meg a számrendszer alapját, akkor az assembler decimális számrendszert feltételez. Az alábbi sorok mind a 18 számot adják meg egy byte-on.

11000b - bináris

30o - oktális

18d - decimális

18 - decimális

12h - hexadecimális

Hexadecimális számok esetén a tíz számjegy nem elég a számok leírására, ezért az angol ábécé első hat betűje pótolja a hiányt. A hexadecimális számjegyek sorban: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. A hexadecimális szám leírását nem kezdhetjük betűvel. Ha a legmagasabb helyiértékű számjegyet egy betű reprezentálja, akkor a számot egy kezdő 0 jeggyel kell leírni (pl.: 0A hexában == decimálisan 10).

Valós számok megadásának módja a következő. Először egy negatív előjel (ha van), majd egy tizedestört szám, amiben az utolsó egész érték után tizedespont következik, végül egy "e" karakter után egy egész szám adja meg a 10-es exponenst (opcionális).

-1.1e-2 = -0.011

Forráskód felépítése

A forráskód egy sora logikailag egy utasításnak felel meg.

A forráskódban elkülönül a deklarációs és végrehajtási rész. A deklarációs rész más nyelvekhez hasonló deklarációkat tartalmaz változókra, makrókra, konstansokra.

A végrehajtási rész egy sora a következőképpen néz ki:

<címke> <operátor> <operandus1>, <operandus2> <megjegyzésjel><megjegyzés>

pl.:

122 sub eax, 10 ; vonjunk ki 10-et az eax regiszterbeli értékből