Mikroprocesory - Skripta
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.
PSHY
LDY
cislo1 ; Uložení parametru c1 do zásobníku
Mikroprocesory
23
PSHY
JSR
f1
; Volání funkce f1. Do zásobníku se uloží návratová adresa.
PSHX
; Uloží se frame pointer volající funkce
TSX
; Nastavení nového frame pointru.
; Do registru X se uloží hodnota 93.
Poznámka: Instrukce TSX uloží do registru X obsah registru SP zvýšený o 1 tak, aby
registr X ukazoval na první obsazený (tj. poslední vložený) byte v zásobníku.
Po volání funkce bude obsah zásobníku následující:
Adresa Obsah zásobníku Popis
92
SP po vstupu do funkce
93
Reg. X
Uložení frame pointer volající funkce
94
95
Návratová adr. H Uložení návratové adresy
96
Návratová adr. L
97
c1H
Uložení parametru c1
98
c1L
99
c2H
Uložení parametru c2
100
c2L
101
SP před voláním funkce.
Sem ukazuje frame pointer volající funkce.
Pro přístup k parametru c1 lze použít instrukci LDD 4,X, pro přístup k parametru c2
instrukci LDD 6,X.
Před návratem musí funkce obnovit frame pointer volající funkce a zároveň jej odstranit
ze zásobníku. Návrat z funkce f1 může vypadat následovně:
PULX
; Vyzvednutí frame pointru volající funkce
RTS
; Návrat z podprogramu
PULY
; Odstranění parametru c1 ze zásobníku
PULY
; Odstranění parametru c2 ze zásobníku
STD
vysl
; Uložení výsledku
Alternativně mohou být parametry odstraněny ze zásobníku pomocí instrukce TXS, která
uloží do registru SP obsah registru X zmenšený o 1. Je důležité si uvědomit, že frame pointer
volající funkce ukazuje na adresu 101. Pak by kód pro návrat z f1 vypadal následovně:
PULX
; Vyzvednutí frame pointru volající funkce
RTS
; Návrat z podprogramu
TXS
; Odstranění parametrů c1, c2 ze zásobníku
STD
vysl
; Uložení výsledku