mandag den 15. november 2010

Opgave 9
Assambly-koden:
#Testing r-format arithmetic operators

#init registers
.register $s0 -10
.register $s1 5
.register $s2 3


main: add $s3, $s1, $s1 #5+5
add $s4, $s1, $s0 #5+-10
sub $s5, $s1, $s2 #5-3
sub $s6, $s2, $s1 #3-5
and $s7, $s2, $s1 #011 AND 101
exit:

Hvad gør den??

Den første instruktion tager register 1 (5) og lægger sammen med register 1 (5), og putter svaret i reg 3.
Den anden instruktion tager register 1 (5) og lægger sammen med register 0 (-10), og putter svaret i reg 4.
Den tredje instruktion tager register 2 (3) og trækker fra register 1 (5), og putter svaret i reg 5.
Den fjerde instruktion tager register 1 (5) og trækker fra register 2 (3), og putter svaret i reg 6.
Den femte instruktion tager register 2 (3) og adder med register 1 (5), og putter svaret i reg 7.

Opgave 1 : Basic arithmetic
• Hvilke enheder benyttes?
Programcounter
Sender med specifikke mellemrum adressen til næste kommando.
Programinkriminator
Inkrimentere programcounterværdien
'Programinstruktionsstørrelseinkriminator
Udsender en hardcoded værdi af kommandolængden.
Instruktionshukommelsen
Udsender instruktionen tilsvarende til det som kommandoen peger på i dens hukommelse.
Splitter
Opdeler instruktionen i de forskellige registre og funktionaliteter.
Registerbank
Indlæser de to inputregistre, samt klargør outputregistret.
Registerbankkontrol
Vælger funktionalitet af registerbanken
Hovedaritmetik
Udregner arimitikopgaven på 2 input.
Hovedaritmetikkontrol
Angiver funktionalitet til hovediarimtikken ud fra instruktion.

• Hvilke afhængigheder eksisterer?
alle enheder afhænger af hinanden

• I hvilken rækkefølge udføres operationerne?
Programcounteren sætter takten for hele svineriet.
rækkefølgen for svineriet er:
der hentes en instruktion, instruktionen opdeles i registrer og funktionalitet, parallelt sendes registrende til registerbanken, samt funktionaliteten sendes til Hovedaritmetikkontrol, registerbanken modtager kontrolfunktionalitet fra registerkontrollen, parallelt klargøres outputregistret mens værdien fra de to inputregistre hentes og outputtes, hovedarimitik modtager funktionalitet fra hovedaritmitkkontrol, hovedaritmitik modtager to inputværdier, behandler aritmetisk og outputter dem, registerbanken modtager resultatet, og putter det ned i det klargjorte register.

• Svarer det overens med det forventede?

Ingen kommentarer:

Send en kommentar