Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Mikroprocesory - Skripta

PDF
Stáhnout kompletní materiál zdarma (1.27 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

Existuje  několik  způsobů  předávání  parametrů  při  volání  funkce.  Tyto  způsoby    nazýváme 
volacími  konvencemi.  V případě  klasické  volací  konvence  jazyka  C  jsou  parametry  do 
zásobníku ukládány v pořadí zprava doleva, tedy zezadu. Volající funkce se musí po návratu 
postarat o odstranění parametrů ze zásobníku. 

Při  volání  funkce  (nebo  procedury)  je  v zásobníku  vytvořen  pro  příslušnou  funkci 

(proceduru) tzv. stack frame, v němž se nachází parametry předávané funkci, návratová adresa 
a lokální proměnné dané funkce. K paměťovým pozicím uvnitř stack frame se často přistupuje 
za pomoci vyčleněného registru CPU, který je pak nazýván frame pointer. 

Volací konvence jazyka Pascal je opakem volací konvence jazyka C. Parametry jsou do 

zásobníku ukládány zleva doprava a volaná funkce zodpovídá za vyčištění zásobníku. 

Předpokládejme C funkci  deklarovanou jako: 
unsigned f1(unsigned c1, unsigned c2);  
Pro  jednoduchost  dále  uvažujme,  že  proměnné  cislo1,  cislo2  a  vysl  budou 

uloženy  v paměti  a  že  velikost  datového  typu  unsigned  je  16  bitů.  Dále  budeme 
předpokládat, že pro přístup k lokálním proměnným použijeme indexové adresování pomocí 
registru X. Registr X bude tedy sloužit jako  frame pointer. Funkce f1 bude vracet výsledek 
v registru D. 

Funkci použijeme v následujícím příkazu:  
vysl = f1(cislo1, unsigned cislo2); 
Pak  pro  volání  funkce  f1  bude  třeba  použít  následující  kód  (zápis  je  v jazyku 

symbolických adres pro procesory Motorola řady M68HC11): 

LDY  

cislo2  ; Uložení parametru c2 do zásobníku 

Témata, do kterých materiál patří