7163313946

7163313946



b)    Stos jest używany przez wywołującego funkcję do zachowania zawartości rejestrów (w ramach swoich odpowiedzialności za stan rejestrów), a także do przekazania argumentów do funkcji (gdy jest ich więcej niż cztery).

c)    Stos jest używany przez funkcję do przechowania zawartości rejestrów (w ramach swoich odpowiedzialności za stan rejestrów), a także do przechowywania swoich zmiennych lokalnych.

d)    Operacja odkładania na stos (ang. push), np.

subu $sp, $sp, 4    # dekrementacja $sp

sw $tl, ($sp)    # zapamiętanie zawartości rejestru $tl na stosie

e)    Operacja zdejmowania ze stosu (ang. pop), np.

Iw $t3, ($sp)    # pobranie słowa wskazywanego przez $sp

addu $sp, $sp, 4    # aktualizacja wskaźnika wierzchołka stosu

3.5. Ramka stosu

a)    Funkcja tworzy na stosie obszar zwany ramką stosu (ang. stack frame), gdzie dla swoich potrzeb przechowuje:

•    argumenty przekazane przez wywołującego

•    adres powrotny (adres ten jest zawarty w rejestrze $ra, i byłby zniszczony, gdyby w ciele funkcji nastąpiło wywołanie innej funkcji)

•    zawartość rejestrów, które ma zachować w ramach swojej odpowiedzialności za stan rejestrów

•    zmienne lokalne (deklarowane w funkcji)

•    zawartość rejestrów, które ma zachować wywołujący - jeśli funkcja wywołuje funkcję.

b)    Przykładowa organizacja podstawowej, 24-bajtowej, ramki stosu (stos rośnie w kierunku adresów malejących; z lewej strony pokazano offset względem wierzchołka wskazywanego przez $sp):

20

Old Sra value

16

Old Sfp value

12

Storage for $a3

8

Storage for $a2

4

Storage for $a1

0

Storage for $a0

c) Przykład fragmentu prologu funkcji (początkowe instrukcje dotyczące ramki):

function:    subu $sp, $sp, 24    # miejsce w ramce stosu dla 24 bajtów

sw $ra, 20($sp)    # zachować $ra gdy funkcja ma wywoływać funkcję

d) Przykład fragmentu epilogu funkcji (końcowe instrukcje):

lw $ra, 20(sp) addu $sp, $sp, 24 jr $ra


#    pobranie adresu powrotnego

#    niszczenie ramki stosu

#    powrót z funkcji

str. 3/8



Wyszukiwarka

Podobne podstrony:
14 Który protokół jest używany w przypadku protokołu FTP do przesyłania plików przez Internet? ® TCP
Wydziedziczenie Wydziedziczenie h* prawie polskim jest to pozbawienie osoby uprawnienia do zachowku
82247 Strona037 Jest tak, jak sądzę nade wszystko, dlatego, że „skłaniany” jest on przez wspólnotę b
12 Który rodzaj portu jest używany przez wolne drukarki igłowe? © Ethernet © FireWire © SCSI&nb
CCF20081104000 (3) 144 VI. Czas i przestrzeń w utworach narracyjnych ten jest stosowany przez Bacht
5.    Tworzenie budżetu: jest określony przez firmę, przygotowany do konkretnego
19 Jaka tablica jest używana przez router przy wyborze interfejsu, przez który pakiety danych mają b
DSCN1718 instytucja totalna ó7 nie akcentowana jest pełniona przez instytucje funkcja zaspokajania p
DSCN4669 ENTROPIA Entropia jest zdefiniowana przez zależność dS = dO T Temperatura bezwzględna jest
Ta opcja obrazowania TK jest używana głównie w celach pomocniczych do diagnostycznej oceny tkanki ch
12 Który rodzaj portu jest używany przez wolne drukarki igłowe? © Ethernet © FireWire © SCSI&nb
•    używane przez uczniów podręczniki do nauki biologii (omówienie
•    używane przez uczniów podręczniki do nauki biologii (omówienie

więcej podobnych podstron