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

Z Delphi & Pascal (česká wiki)
Přejít na: navigace, hledá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.