lab9v5 2


.data


lT: .word 130
lTB: .word 105

suma: .space 8

ulamek: .double 0.55
skladnik: .double 155
numer: .double 11
jedynka: .double 1.0
stala: .double 5.2


T: .space 1040
TB: .space 872




.text

ld f2, ulamek
ld f6, skladnik
ld f8, numer
ld f10, jedynka
ld f16, stala
ld f30, suma


addi r3, r0, #0 ;taki zerowy rejestr pomocniczy
addi r1, r0, T ;zaladowanie adresu T[0] do r1
addi r2, r0, TB ;zaladowanie adresu TB[0] do r2



lw r5, lT ;licznik petli T
lw r6, lTB ;licznik petli TB




;liczenie pierwszego elemtu T (skladnik+numer+ulamek)
ulamkowa:
addi r3, r0, #1 ;zmiana rejestru r3, zeby nie wejsc wiecej w petle 'ulamkowa';
addd f12, f6, f8
addd f12, f12, f2
beqz r3, ulamkowa

skocz:

sd 0(r1), f12
addd f12, f12, f10 ;zwiekszenie ulamek+skladnik+numer o 1
addi r1, r1, #8

subi r5, r5, #1 ;dekrementacja licznika
bnez r5, skocz



addi r1, r0, T
addi r3, r0, suma
;petla do uzupelniania tablicy TB



skocz1:
ld f2, 0(r1)
ld f4, 8(r1)
ld f6, 16(r1)
ld f8, 24(r1)
ld f10, 32(r1)
ld f12, 40(r1)

multd f14, f2, f4 ; t[i] * t[i+1]
multd f18, f14, f16 ; t[i] * t[i+1] * stala

addd f20, f6, f8
addd f22, f20, f10 ; t[i+2] +t[i+3]+t[i+4] zrealizowane

subd f24, f18, f22 ; odejmowanie
divd f26, f24, f12 ; odejmowanie/t[i+5]

addd f30, f30, f26
sd 0(r2), f26
addi r2, r2, #8
addi r1, r1, #8

subi r6, r6, #1
bnez r6, skocz1

addi r3, r0, suma
sd 0(r3), f30

trap 0

Wyszukiwarka