AOCZEK, AOK SPRAWKO L5 6, addi


SPRAWOZDANIE

Z ĆWICZENIA LABORATORYJNEGO

L3_4

Analiza działania programu Prim.s

Grupa I0Y4S1


Radosław Skłodowski

Nr 11

10.04.2011

Opis działania

Zadaniem programu jest wyliczenie zadanej (w etykiecie COUNT) ilości liczb pierwszych.

Etykieta main rozpoczyna się wpisaniem wartości do rejestrów r1(wartośc 0) oraz r2(wartość 2) następującymi poleceniami:

addi r1,r0,0

addi r2,r0,2

W etykiecie NextValue do rejestru r3 przypisana zostaje wartość 0.

addi r3,r0,0

Następnie zachodzi porównanie rejestrów r1 oraz r3. Jeśli ich zawartość jest taka sama , do rejestru r4 wpisywana jest wartość 1, a w przeciwnym wypadku 0.

Jeśli r4 jest różne od 0 to program przeskakuje do etykiety IsPrim, która zawiera polecenia sprawdzające czy liczba jest liczbą pierwszą:

sw Table(r1),r2 (TABLE(r1) := r2)

addi r1,r1,4 (r1 := r1 + 4)

lw r9,Count (r9 := COUNT)

srli r10,r1,2 ( r11 := r1/2)

sge r11,r10,r9

bnez r11,Finish

Do pamięci zostaje zapisana zostaje liczba pierwsza w tablicy o indeksie równym zawartości rejestru r1. Potem do rejestru r1 dodawana jest wartość 4, aby badać kolejny element, zaś do rejestru r9 zapisana zostaje ilość liczb pierwszych które program ma wyliczyć.

Jeśli prawdziwe jest porównanie10>r9, to do rejestru r11 zostaje zapisana wartość 1, a w przeciwnym wypadku wartość 0. W momencie gdy wartość r11 jest równa 1 program kończy swoje działanie, a gdy jest równa 0, to wartość rejestru r2 zostaje zwiększona o 1(po czym program zaczyna pracę od początku).

W przypadku, gdy zawartość rejestru r4 była równa 0 to program przechodzi do następnych rozkazów z etykiety Loop, czyli:

lw r5,Table(R3)

divu r6,r2,r5

multu r7,r6,r5

subu r8,r2,r7

Jeśli zawartość rejestru r8 jest równa 0 to rejestr r2 zwiększany jest o 1,a program wraca do początku. Jeśli zaś jest równa 1, to zawartość rejestru r3 zostaje zwiększona o 4, a program wraca do etykiety NextValue.

Opisaną sekwencje działania programu ilustruje algorytm:

Algorytm działania programu

0x08 graphic

Mapa śledzenia

Plik źródłowy: Prim.s

Zawartość rejestrów przedstawiona w systemie dzisiętnym.

Analiza przeprowadzona dla 5 liczb pierwszych.

Rejestr PC ustawiony na 100. Pozostałe rejestry wyzerowane.

Rozkaz:

Zmiana rejestru/pamięci/komunikat:

addi r1,r0,0

r1 = 0

addi r2,r0,2

r2 = 2

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 1

bnez r4,IsPrim

lw r5,Table(R3)

aborted

sw Table(r1),r2

Table(0) = 2 (Pierwszy wynik)

addi r1,r1,4

r1 = 4

lw r9,$DATA(r0)

r9 = 5

srli r10,r1,2

r10 = 1

sge r11,r10,r9

r11 = 0

bnez r11,Finish

addi r2,r2,1

r2 = 3

j Next Value

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 1

multu r7,r6,r5

r7 = 2

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 4

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 1

bnez r4,IsPrim

lw r5,Table(r3)

aborted

sw Table(r1),r2

Table(4) = 3 (Drugi wynik)

addi r1,r1,4

r1 = 8

lw r9,$DATA(r0)

r9 = 5

srli r10,r1,2

r10 = 2

sge r11,r10,r9

r11 = 0

bnez r11,Finish

addi r2,r2,1

r2 = 4

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 2

multu r7,r6,r5

r7 = 4

subu r8,r2,r7

r8 = 0

beqz r8,IsNoPrim

addi r3,r3,4

aborted

addi r2,r2,1

r2 = 5

j NextValue

trap 0

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 2

multu r7,r6,r5

r7 = 4

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 4

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

divu r6,r2,r5

r6 = 1

multu r7,r6,r5

r7 = 3

subu r8,r2,r7

r8 = 2

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 8

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 1

bnez r4,IsPrim

lw r5,Table(r3)

aborted

sw Table(r1),r2

Table(8) = 5 (Trzeci wynik)

addi r1,r1,4

r1 = 12

lw r9,$DATA(r0)

r9 = 5

srli r10,r1,2

r10 = 3

sge r11,r10,r9

r11 = 0

bnez r11,Finish

addi r2,r2,1

r2 = 6

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 3

multu r7,r6,r5

r7 = 6

subu r8,r2,r7

r8 = 0

beqz r8,IsNoPrim

addi r3,r3,4

aborted

addi r2,r2,1

r2 = 7

j NextValue

trap 0

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 3

multu r7,r6,r5

r7 = 6

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 4

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 3

divu r6,r2,r5

r6 = 2

multu r7,r6,r5

r7 = 6

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 8

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 5

divu r6,r2,r5

r6 = 1

multu r7,r6,r5

r7 = 5

subu r8,r2,r7

r8 = 2

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 12

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 1

bnez r4,IsPrim

lw r5,Table(r3)

aborted

sw Table(r1),r2

Table(12) = 7 (Czwarty wynik)

addi r1,r1,4

r1 = 16

lw r9,$DATA(r0)

r9 = 5

srli r10,r1,2

r10 = 4

sge r11,r10,r9

r11 = 0

bnez r11,Finish

addi r2,r2,1

r2 = 8

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 4

multu r7,r6,r5

r7 = 8

subu r8,r2,r7

r8 = 0

beqz r8,IsNoPrim

addi r3,r3,4

aborted

addi r2,r2,1

r2 = 9

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 4

multu r7,r6,r5

r7 = 8

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 4

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 3

divu r6,r2,r5

r6 = 6

multu r7,r6,r5

r7 = 9

subu r8,r2,r7

r8 = 0

beqz r8,IsNoPrim

addi r3,r3,4

aborted

addi r2,r2,1

r2 = 10

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 5

multu r7,r6,r5

r7 = 10

subu r8,r2,r7

r8 = 0

beqz r8,IsNoPrim

addi r3,r3,4

aborted

addi r2,r2,1

r2 = 11

j NextValue

trap 0

aborted

addi r3,r0,0

r3 = 0

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 2

divu r6,r2,r5

r6 = 5

multu r7,r6,r5

r7 = 10

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 4

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 3

divu r6,r2,r5

r6 = 3

multu r7,r6,r5

r7 = 9

subu r8,r2,r7

r8 = 2

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 8

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 5

divu r6,r2,r5

r6 = 2

multu r7,r6,r5

r7 = 10

subu r8,r2,r7

r8 = 1

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 12

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 0

bnez r4,IsPrim

lw r5,Table(r3)

r5 = 7

divu r6,r2,r5

r6 = 1

multu r7,r6,r5

r7 = 7

subu r8,r2,r7

r8 = 4

beqz r8,IsNoPrim

addi r3,r3,4

r3 = 16

j Loop

sw Table(r1),r2

aborted

seq r4,r1,r3

r4 = 1

bnez r4,IsPrim

lw r5,Table(r3)

aborted

sw Table(r1),r2

Table(16) = 11 (Piąty wynik)

addi r1,r1,4

r1 = 20

lw r9,$DATA(r0)

r9 = 5

srli r10,r1,2

r10 = 5

sge r11,r10,r9

r11 = 1

bnez r11,Finish

addi r2,r2,1

aborted

Trap 0

trap #0 occured

PC = 344

IMAR = 340

Ilość cykli: 649



Wyszukiwarka

Podobne podstrony:
SPRAWKO ASK, WAT, SEMESTR I, AOK, LAB
AOK LAB3 SPRAWKOZDANIE
L5 I1Y6S1 7, WAT, sem II, aok
El sprawko 5 id 157337 Nieznany
LabMN1 sprawko
Obrobka cieplna laborka sprawko
Ściskanie sprawko 05 12 2014
1 Sprawko, Raport wytrzymałość 1b stal sila
stale, Elektrotechnika, dc pobierane, Podstawy Nauk o materialach, Przydatne, Sprawka
2LAB, 1 STUDIA - Informatyka Politechnika Koszalińska, Labki, Fizyka, sprawka od Mateusza, Fizyka -
10.6 poprawione, semestr 4, chemia fizyczna, sprawka laborki, 10.6
PIII - teoria, Studia, SiMR, II ROK, III semestr, Elektrotechnika i Elektronika II, Elektra, Elektro
grunty sprawko, Studia, Sem 4, Semestr 4 RŁ, gleba, sprawka i inne
SPRAWKO STANY NIEUSTALONE, Elektrotechnika, Elektrotechnika
SPRAWOZDANIE Z farmako, Farmacja, II rok farmacji, I semstr, fizyczna, Fizyczna, Sprawozdania z fizy
mmgg, Studia PŁ, Ochrona Środowiska, Chemia, fizyczna, laborki, wszy, chemia fizyczna cz II sprawka
Zadanie koncowe, Studia PŁ, Ochrona Środowiska, Biochemia, laborki, sprawka
Piperyna sprawko PŁ, chemia produktów naturalnych, ćw. 5 PIPERYNA
03 - Pomiar twardości sposobem Brinella, MiBM Politechnika Poznanska, IV semestr, labolatorium wydym

więcej podobnych podstron