Cześć,
próbuję się trochę poduczyć podstaw z podstaw Asemblera. Jest to moja pierwsza próba. Do programu liczącego pole koło dodałem jeszcze 3 figury. Przy próbuje kompilacji w MARS-ie wyskakuje mi jednak błąd "dropped off bottom"
Czy ktoś w międzyczasie, może wskazać co w tym przypadku zrobiłem źle?
.data
pi: .double 3.14159
promptbasic: .asciiz "wpisz 1 dla kola, 2 dla prostokata, 3 dla trojkata, 4 dla kola"
prompt: .asciiz "Wpisz promien kola: "
prompt2: .asciiz "Wpisz dlukosc boku w kwadracie:"
prompttriangle: .asciiz "Wpisz podstawe trojkata:"
prompttriangle2: .asciiz "Wpisz wysokosc trojkata:"
promptrect: .asciiz "Wpisz wysokosc prostokata:"
promptrect2: .asciiz "Wpisz szerokosc prostokata:"
.text
main:
la $a0, promptbasic
li $v0, 4
syscall
li $v0, 7
syscall
beq $v0, 1, Kwadrat
beq $v0, 2, Prostokat
beq $v0, 3, Trojkat
beq $v0, 4, Kolo
Kwadrat:
la $a0, prompt2 #prompt
li $v0, 4
syscall # prompt dla usera
li $v0, 7 #
syscall # promien <- user input. Loading do $f0
mul.d $f12,$f0,$f0
li $v0, 3
syscall
Prostokat:
la $a0, promptrect #prompt dla usera
li $v0, 4
syscall # prompt dla usera
li $v0, 7
syscall
mov.d $f2, $f0
la $a0, promptrect2 #prompt dla usera
li $v0, 4
syscall # promt dla usera
li $v0, 7
syscall
mul.d $f2, $f2, $f0 # f0 x f1
li $v0, 3
syscall
j Exit
Trojkat:
la $a0, prompttriangle #prompt dla usera
li $v0, 4
syscall # promt
li $v0, 7 # read_double
syscall
mov.d $f1, $f0
la $a0, prompttriangle2 #prompt
li $v0, 4
syscall # Prompt
li $v0, 7
syscall
li $a0, 2
l.d $f12, 0($a0)
mul.d $f2, $f2, $f0 #f0 x f1
div.d $f2, $f2, $f12
li $v0, 3
syscall
j Exit
Kolo:
la $a0, prompt #promt
li $v0, 4
syscall # prompt
li $v0, 7
syscall # promien <- user input. Loading do $f0
la $a0, pi # Ladowanie "pi" w $a0
l.d $f12, 0($a0)
mul.d $f12, $f12, $f0
mul.d $f12, $f12, $f0
li $v0, 3
syscall # podaj pole
j Exit
Exit: