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í
m (1 revízia: Assembler)
m (1 revízia: Assembler pismeno D)
 
(Není zobrazena jedna mezilehlá verze od stejného uživatele.)
(Žádný rozdíl)

Aktuální verze z 9. 11. 2012, 21:18

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.