Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- radiusString: .asciiz "\nPodaj promien kola "
- heightString: .asciiz "Podaj wysokosc walca "
- areaString: .asciiz "\nPole kola(PI*r*r) "
- oString: .asciiz "Obwod kola(2*PI*r) "
- volumeString: .asciiz "\nObjetosc walca(pole podstawy*h = PI*r*r*h) "
- totalAreaString: .asciiz "\nPole walca(obwod*h+2*pole podstawy = 2*PI*r*h+2*PI*r*r) "
- runString: .asciiz "\nPrzebieg numer "
- areaMaxString: .asciiz "\nMaksymalny pole "
- volumeMaxString: .asciiz "\nMaksymalna objetosc "
- areaMaxRunString: .asciiz "\nMaksymalny pole - przebieg numer "
- volumeMaxRunString: .asciiz "\nMaksymalna objetosc - przebieg numer "
- areaMinString: .asciiz "\nMinimalne pole "
- volumeMinString: .asciiz "\nMinimalna objetosc "
- areaMinRunString: .asciiz "\nMinimalne pole - przebieg numer "
- volumeMinRunString: .asciiz "\nMinimalna objetosc - przebieg numer "
- againString: .asciiz "\nPowtarzasz? 0 - koniec "
- .text
- li $t6, 1 # ustawienie rejestru na licznik powtórzeń
- li $t7, 0 # ustawienie rejestrów do wyszukania maksymalnych i miminalnych objętości i pól
- li $t8, 0
- li $t9, 0
- li $s0, 0
- li $s1, 0x7FFFFFFF
- li $s2, 0x7FFFFFFF
- li $s3, 0
- li $s4, 0
- main:
- la $a0, runString # wypisanie runString
- li $v0, 4
- syscall
- move $a0, $t6 # wypisanie licznika
- li $v0, 1
- syscall
- la $a0, radiusString # wczytanie promienia
- li $v0, 4
- syscall
- li $v0, 5 # wczytanie promienia
- syscall
- mul $t0, $v0, 3 # 3 r
- mul $t1, $t0, 2 # obwód
- mul $t2, $t0, $v0 # pole
- la $a0, heightString # wczytanie wysokości
- li $v0, 4
- syscall
- li $v0, 5
- syscall
- mul $t3, $v0, $t2 # objetosc
- mul $t4, $t2, 2 # 2 pola podstaw
- mul $t5, $t1, $v0 # pole powierchni bocznej
- add $t4, $t4, $t5 # pole powierchni całkowitej
- la $a0, oString # wypisanie oString
- li $v0, 4
- syscall
- move $a0, $t1
- li $v0, 1
- syscall
- la $a0, areaString # wypisanie areaString
- li $v0, 4
- syscall
- move $a0, $t2
- li $v0, 1
- syscall
- la $a0, volumeString # wypisanie volumeString
- li $v0, 4
- syscall
- move $a0, $t3
- li $v0, 1
- syscall
- la $a0, totalAreaString # wypisanie totalAreaString
- li $v0, 4
- syscall
- move $a0, $t4
- li $v0, 1
- syscall
- la $a0, againString # pytanie czy ponawiasz
- li $v0, 4
- syscall
- li $v0, 5
- syscall
- ble $t3, $t7, branchVolume
- move $t7, $t3 # v max nowe
- move $t9, $t6 # indeks v max
- branchVolume:
- ble $t4, $t8, branchArea
- move $t8, $t4 # p max nowe
- move $s0, $t6 # indeks p max
- branchArea:
- bge $t3, $s1, branchMinVolume
- move $s1, $t3 # v min nowe
- move $s3, $t6 # indeks v min
- branchMinVolume:
- bge $t4, $s2, branchMinArea
- move $s2, $t4 # p min nowe
- move $s4, $t6 # indeks p min
- branchMinArea:
- addi $t6, $t6, 1 # zwiększenie licznika
- #t3 ob, #t4 pole, t7 max v, t8 max p, max v indeks t9, p maks indeks s0
- bne $v0, $zero, main # 0 - koniec, inne wracamy do maina
- la $a0, volumeMaxString # wypisanie volumeMaxString
- li $v0, 4
- syscall
- move $a0, $t7
- li $v0, 1
- syscall
- la $a0, areaMaxString # wypisanie areaMaxString
- li $v0, 4
- syscall
- move $a0, $t8
- li $v0, 1
- syscall
- la $a0, volumeMaxRunString # wypisanie volumeMaxRunString
- li $v0, 4
- syscall
- move $a0, $t9
- li $v0, 1
- syscall
- la $a0, areaMaxRunString # wypisanie areaMaxRunString
- li $v0, 4
- syscall
- move $a0, $s0
- li $v0, 1
- syscall
- la $a0, volumeMinString # wypisanie volumeMaxString
- li $v0, 4
- syscall
- move $a0, $s1
- li $v0, 1
- syscall
- la $a0, areaMinString # wypisanie areaMaxString
- li $v0, 4
- syscall
- move $a0, $s2
- li $v0, 1
- syscall
- la $a0, volumeMinRunString # wypisanie volumeMaxRunString
- li $v0, 4
- syscall
- move $a0, $s3
- li $v0, 1
- syscall
- la $a0, areaMinRunString # wypisanie areaMaxRunString
- li $v0, 4
- syscall
- move $a0, $s4
- li $v0, 1
- syscall
- li $v0, 10 # koniec
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement