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: