# In Class Project Number 1
# Instructor's solution
# By: Walter W. Schilling, Jr. July 5, 2012
#
# This program will convert an angle in degrees into an angle in Radians.
# It is written in MIPS assembly.

########################################################################################################################################
# The Data segment.
# The data segment defines the data for the program.
########################################################################################################################################
.data
enterAngleMessage:
.asciiz "Please enter the angle in degreesx:\n"

resultMessage: 
.asciiz "The result is: "

pi:
.double 3.1415926535

oneeighty:
.double 180.0

########################################################################################################################################
# The text segment.
# The text segment defines the actual program instructions which will execute.
########################################################################################################################################
.text
main:
	li $v0, 4
	la $a0, enterAngleMessage
	syscall
	
	# Obtain the angle as a floating point number.
	li $v0, 7
	syscall
	
	#Perform the multiplication and conversion.
	# Load pi into a register from the numeric constant.
	l.d $f4, pi

	# Start by multipling the angle by pi.
	mul.d $f2, $f0, $f4
		
	# Now divide that result by 180.		
	l.d $f4, oneeighty
	
	div.d $f0, $f2, $f4

	# Print out the result message.
	li $v0, 4
	la $a0, resultMessage
	syscall	
	
	# Print out the value as a double
	li $v0, 3
	mov.d $f12, $f0
	syscall

	# Exit the program
	li $v0, 10
	syscall

