Muszę napisać program obliczający silnię dla dużych liczb (np. 200). Mam taki kod:
<code> .text
main:
li $v0, 4
la $a0, prompt
syscall
li $v0, 5
syscall
move $s0, $v0
move $t1, $v0
li $t0, 1
loop:
mul $t0, $t0, $s0
addi $s0, $s0, -1
bgtz $s0, petla
li $v0, 1
move $a0, $t0
syscall
li $v0, 10
syscall
.data
prompt: .asciiz "\nGive a number: " </code>
Program nie daję rady jednak policzyć silni już dla liczb większych od 31. Ktoś ma jakiś pomysł, jak to naprawić?
<code> .text
main:
li $v0, 4
la $a0, prompt
syscall
li $v0, 5
syscall
move $s0, $v0
move $t1, $v0
li $t0, 1
loop:
mul $t0, $t0, $s0
addi $s0, $s0, -1
bgtz $s0, petla
li $v0, 1
move $a0, $t0
syscall
li $v0, 10
syscall
.data
prompt: .asciiz "\nGive a number: " </code>
Program nie daję rady jednak policzyć silni już dla liczb większych od 31. Ktoś ma jakiś pomysł, jak to naprawić?