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

Z Delphi & Pascal (česká wiki)
Verze z 12. 10. 2012, 11:57, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (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 ...“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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.