0
需要使用Mips Assembly Lang來計算萊布尼茨系列派的幫助。萊布尼茲系列幫助組裝語言
我會輸入10000,它會從餅圖走得更遠。也許我認爲我的公式錯了?我不確定。我使用了一個條件分支來確定該項是否大於零或小於。
.text
.globl main
main:
la $a0,prompt # print string
li $v0,4 # service 4
syscall
li $v0,5 # read int into $v0
syscall # service 5
#Evaluate Pie
move $t2,$v0 #Move user number into $s0
li $t1,1 #Loop counter
li.s $f2,0.0 #Sum
li.s $f4,0.0 #Add to sum
li.s $f6,0.0 #Comparison 0.0
li.s $f8,1.0 #Use as floating i
li.s $f10,1.0 #Temp 1.0
li.s $f14,2.0 #Constant 2.0
loop:
beq $t1,$t2,done #While 1<User Input Cont
mul.s $f4,$f14,$f8 #2.0*I
add.s $f4,$f4,$f10 #2.0*I+1.0
div.s $f4,$f10,$f4 #1.0/2.0*I+1.0
addi $t1,$t1,1 #Increment Loop Counter
add.s $f8,$f8,$f10 #Increment Float I
c.lt.s $f6,$f4 #Is 0.0 < Add to sum
bc1t yes
sub.s $f2,$f4,$f2 #No so subtract
yes: add.s $f2,$f4,$f2 #Yes so add
j loop
done:
mov.s $f12,$f2 #Move sum to float print
li $v0,2 # print sum
syscall
li $v0,10 # exit
syscall
##
## Data Segment
##
.data
prompt: .asciiz "Enter number of terms: "