I've been working on this for hours! the code makes perfect sense, but wont' work!!! aaah! about to pull my hair out.

the code is suppose to do get the sum of this

1/1 + 1/2 + ..... + 1/n

I blocked all the codes and just print out the v0 value in float form, but it's the same problem so I'm assuming its coming from the conversion. But I followed the codes closely, shouldn't be any errors.

	.globl __start


	la $a0, prompt		#print the directions to screen
	li $v0,4

        # Register Use Chart
        # $f0 --- x
        # $f2 --- sum of terms

        la      $a0,prompt          # prompt user for v0
        li      $v0,4               # print string
        li      $v0,5              # read single
        syscall                     # input stored to v0

	li  $t0,1		#assign 1 to t0
	l.s  $f2,1		#assign 1 to f2
	l.s  $f10,0		#assign 0 to f10


	#f2 is the number 1
	#f4 is the float value of the input integer
	#f6 is the value after the division operation
	#f10 is the sum of all the added values

	mtc1 $v0, $f4		#
	cvt.s.w $f4, $f4	#convert from int to float

	div.s $f6,$f2,$f4	#divide 1/n and store in f6


	add.s $f10, $f10, $f6	#add f6 to the sum(initial 0)

	sub $v0,$v0,$t0		#n-1

	beq $v0,0,next		#if n==0 go to next
		bne $v0,0,do	#if n!=0 go to do


        #print the result
        mov.s   $f12,$f10            # move sum to f12 register
	li      $v0,2               # print single

        la      $a0,newl            # new line
        li      $v0,4               # print string

        li      $v0,10              # code 10 == exit
        syscall                     # Return

##  Data Segment  

zero:	.float 0.0

prompt: .asciiz "Enter an integer: "
blank:  .asciiz " "
newl:   .asciiz "\n"
7 Years
Discussion Span
Last Post by Nathan Campos

Integer versus the Floating-Point processor. You're adding Floating-Point result of the reciprocal addition onto the integer register!

fTally = 0.0
fOne = 1.0

while N
   fN = N
    f = 1.0 / fN
    fTally = fTally + f
end while

Only one thing, please homeryansta, put the code in code tags with the highlighting: [ code=asm ] [ /code ] and please put better titles in your posts, because with good tittles the forums will be more organized and your chances to have a answer will grow, because of someone had the same problem, now can help you.


This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.