All pastes #513218 Raw Edit

Area of Triangle

public text v1 · immutable
#513218 ·published 2007-05-27 05:08 UTC
rendered paste body
	.data

base:	.word 0
ht:	.word 0
area:	.word 0

msg:	.asciiz "\n"
msgadd:	.word msg	
	
msg2:	.asciiz "Please enter a value for base: "
msgadd2:.word msg2

msg3:	.asciiz "Please enter a value for height: "
msgadd3:.word msg3

msg4:	.asciiz "Area is: "
msgadd4:.word msg4

msg5:	.asciiz "Finished "
msgadd5:.word msg5

	.text

main:	lw $a0, msgadd2		#display input message for base
	ori $v0, $0, 4
	syscall
	
	addi $v0, $0, 5		#read base
	syscall
	add $t0, $0, $v0	#put base into $t0

	slti $t3, $t0, 0	#if base is less than 0 then print
	bne $t3, $0, prin
	
	sw $t0, base		#store value in $t0 into base in memory
	
height:	lw $a0, msgadd3		#display input message for height
	ori $v0, $0, 4
	syscall
	
	addi $v0, $0, 5		#read integer
	syscall
	add $t1, $0, $v0	#put ht into $t1
	
	slti $t4, $t1, 0	#if height is less than 0 then print
	bne $t4, $0, prin

	sw $t1, ht		#store value in $t1 into height in memory

	j main			#jump to main


prin:	lw $t0, base		#load base from memory
	lw $t1, ht		#load height from memory
	
	lw $a0, msgadd		#print new line
	ori $v0, $0, 4
	syscall

	lw $a0, msgadd4		#display area is message
	ori $v0, $0, 4
	syscall
	
	mult $t0, $t1		#base * height
	mflo $t2

	addi $t5, $0, 2		#put 2 into $t5	

	div $t2, $t5		#bh / 2, store result back into $t2
	mflo $t2		

	sw $t2, area		#store result in $t2 into area in memory

	addi $v0, $0, 1		#print final result
	add $a0, $0, $t2
	syscall
	
	j end			#jump to end

end:	lw $a0, msgadd		#print new line
	ori $v0, $0, 4
	syscall	

	lw $a0, msgadd5		#display finished message
	ori $v0, $0, 4
	syscall