Treść zadania

KamiSan1994

Na podstawie zadania 4 rozwiąż zadanie 5 :
Zadanie 4
a) Wprowadzić kod programu
.text
main: subu $sp, $sp, 24 # utworzyć standardową ramkę
sw $ra, 20($sp)
li $a0, 6 # wywołać factorial(6)
jal factorial # rezultat jest w $v0,
move $a0, $v0 # wydrukować go
li $v0, 1
syscall
li $v0, 10 # exit
syscall
factorial: subu $sp, $sp, 24 # utworzyć standardową ramkę 24-bajtową
sw $ra, 20($sp) # zachować adres powrotny
# bo będzie wywołanie rekurencyjne.
sw $a0, 0($sp) # zachować argument wywołania,
# bo będzie potrzebny do mnożenia.
bgt $a0, 1, notbasecase # if arg > 1, not the base case, skip
basecase: li $v0, 1 # przypadek bazowy: fact(1) = 1
b factreturn # zwrócić rezultat.
notbasecase: subi $a0, $a0, 1 # przypadek niebazowy: argument funkcji zmniejszyć o 1
jal factorial # i wywołać funkcję factorial
# rezultat jest w $v0
lw $a0, 0,($sp) # pobrać oryginalny argument z ramki stosu
mulo $v0, $a0, $v0 # result = argument * factorial(argument - 1)
factreturn: lw $ra, 20($sp) # odtworzyć adres powrotny
addu $sp, $sp, 24 # zniszczyć ramkę
jr $ra # wrócić do wywołującego (rezultat w $v0)
b) Przeanalizować program, podać asemblacji i wykonać.
c) Wykonać program krokowo, analizując stan stosu, ramki dla kolejnych wywołań
rekurencyjnych, kolejne operacje mulo.
str. 7/8
d) Przyjmując powyższy program za wzorzec, samodzielnie napisać program, służący do
rekurencyjnego wyznaczania wartości elementów ciągu Fibonacciego:
1. Fib(1) = 1
2. Fib(2) = 1
3. Fib(X) = Fib(X-1) + Fib(X-2).
e) Program poddać asemblacji i przetestować. Rezultaty pracy umieścić i opisać w sprawozdaniu.
5.4. Zadanie 5
a) W programie z zadania 4 wprowadzić zmianę organizacji dostępu do danych zawartych
w ramce stosu, polegającą na zastosowaniu rejestru $fp, jako wskaźnika ramki stosu
(zawartość rejestru $fp, w ciele funkcji, nie może podlegać zmianom, należy zastosować tryb
adresowania pośredniego z przesunięciem, ang. indirect).
b) Program przetestować za pomocą pracy krokowej. W sprawozdaniu zamieścić progam i opisać
rezultaty przeprowadzonych testów.
program
link do darmowego programu (Asembler Mars) : http://www.filedropper.com/mars45
Pdf z wszystkimi zadaniami : http://www.filedropper.com/lab04

Zadanie jest zamknięte. Autor zadania wybrał już najlepsze rozwiązanie lub straciło ono ważność.

Rozwiązania

Podobne zadania

bella9 pisz cie jakieś zadania Przedmiot: Informatyka / Studia 2 rozwiązania autor: bella9 30.9.2010 (18:53)
karolek9042 Witam! mam do rozwiązania następujące zadanie i bardzo proszę o Przedmiot: Informatyka / Studia 1 rozwiązanie autor: karolek9042 12.1.2011 (19:43)
Bialy857 NAPISZ PROGRAM, KTÓRY REALIZUJE NASTĘPUJĄCE ZADANIE: 1. Znajduje Przedmiot: Informatyka / Studia 1 rozwiązanie autor: Bialy857 22.1.2011 (15:48)
~tomek Witam, otóż dostałem takie zadanie od kumpla, nie wiem o co dokładnie Przedmiot: Informatyka / Studia 1 rozwiązanie autor: ~tomek 26.11.2012 (10:34)
sasha11 Potrzebna mi pomoc w zrobieniu 1 i 2 zadania z Excela. ;) Przedmiot: Informatyka / Studia 1 rozwiązanie autor: sasha11 30.11.2013 (14:31)

Podobne materiały

Przydatność 55% Analiza Finansowa- zadanie

praca w załącznikach

Przydatność 80% Zadanie z fizy

1.46 Z ciała o masie m1= 11000kg następuje strzał w kierunku poziomym. Masa pocisku wynosi m2= 54kg. Oblicz prędkość, z jaką działo zostaje odrzucone wstecz, jeśli prędkość pocisku wynosi v2= 900 m/s. m1= 11000 kg m2= 54 kg v1 = ? v2 = 900 m/s Po = Pk Po=(m1+m2)* V V= 0 – na początku działo jest w spoczynku 0=m2*v2 – m1*v1 m1*v1 = m2*v2 v1=...

Przydatność 75% Zadanie inspektora BHP

JAK ROZUMIESZ ROLE I ZADANIA INSPEKTORA BHP W TWOIM ZAKŁADZNIE Inspektor BHP w zakładzie pracy pełni role doradcze i kontrolne. Podstawowym zadaniem pełniącej role BHP w zakładzi jest okresowa analiza stanu bezpieczeństwa i higieny pracy. Inspektor slużby BHP jest zobowiązany do sporządzenia i przedstawiania pracodawcy co najmniej raz w roku okresowych analiz stanu...

Przydatność 90% Zadanie z weryfikacji hipotez

Ustalono na podstawie analizy kosztów, że będzie się opłacać się wybudowanie motelu przy trasie komunikacyjnej, jeśli będzie przejeżdżać tą trasą więcej niż 800 samochodów dziennie. W losowe wybrane dni roku liczono ilość przejeżdżających samochodów. Otrzymano następujące rezultaty: 792, 810, 820, 886, 910, 840, 1025, 790, 972, 830, 810, 780, 815, 954, 810, 930, 820. Na...

Przydatność 50% Zadanie z prawdopodobieństwa

Losujemy 5 liczb z 42. Określić prawdopodobieństwo, że wśród tych pięciu wylosowanych liczby trafimy 'trójkę'. Ile razy to prawdopodobieństwo jest większe od wylosowania 'czwórki' i 'piątki'?

0 odpowiada - 0 ogląda - 0 rozwiązań

Dodaj zadanie

Zobacz więcej opcji