Vstupní a závěrečný kód assembleru: Porovnání verzí

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „Assembler automaticky generuje vstupní a závěrečný kód pro assemblerovskou proceduru nebo funkci, jak je ukázáno dále: ;Vstupní kód (Stack ...“)
 
m (1 revízia: Assembler)
(Žádný rozdíl)

Verze z 12. 10. 2012, 15:58

Assembler automaticky generuje vstupní a závěrečný kód pro assemblerovskou proceduru nebo funkci, jak je ukázáno dále:

                 ;Vstupní kód (Stack frame - zásobníkový rámec)
PUSH  BP         ;Přítomen, když Lokální <> 0 nebo Param <> 0
MOV   BP,SP      ;Přítomen, když Lokální <> 0 nebo Param <> 0
SUB   SP,Lokální ;Přítomen, když Lokální <> 0
...
...              ;Závěrečný kód
MOV   SP,BP      ;Přítomen, když Lokální <> 0
POP   BP         ;Přítomen, když Lokální <> 0 nebo Param <> 0
RET   Param      ;Vždy přítomen

kde:

  • Lokální je velikost lokálních proměnných
  • Param je velikost formálních parametrů

Jestliže Lokální a Param jsou 0, kromě instrukce RET není do rutiny vložen žádný vstupní ani závěrečný kód.