Lekce 16 - Funkce v MASM
V minulé lekci, Assembler - Rejstřík instrukcí procesoru, jsme se podívali na přehled nejdůležitějších instrukcí.
V dnešním ASM tutoriálu se naučíme používat direktivy
proc
, endp
, local
a invoke
,
které nám používání funkcí velmi usnadní. Tyto direktivy fungují v
kompilátorech UASM, ASMC, JWasm a také v 32-bitovém MASM. Ve FASM a TASM
mají trochu odlišnou syntaxi. V NASM a ve 64-bitovém MASM tyto direktivy
vůbec nejsou.
Motivace
Funkci v ASM voláme instrukcí CALL
a její parametry na
zásobník vkládáme instrukcí PUSH
. Uvnitř funkce si hodnoty
parametrů přečteme instrukcí MOV
a na konec funkce dáme
instrukci RET
. Vypadá to jednoduše.
Jakmile má ale funkce více parametrů a k tomu ještě několik lokálních proměnných, pak je poměrně nepraktické používat pouze instrukce procesoru. Museli bychom si pamatovat, na které pozici na zásobníku leží jednotlivé proměnné a odkazovat se na ně číselnými indexy.
Definice funkce
Funkci pomocí direktivy proc
deklarujeme následovně:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V assembler tutoriálu si ukážeme definice funkcí v MASM a to i s parametry a lokálními proměnnými. Čeká nás i přehled volacích konvencí různých systémů.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.