Факториал в Assembler
Пример для версий
MIPS32
13! и дальше вызывают переполнение, поэтому вывод такой:
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 1932053504
14! = 1278945280
15! = 2004310016
.data
string1: .asciiz "! = "
string2: .asciiz "\n"
.text
main:
li $t1, 1
li $t2, 1
j loop
loop:
li $v0, 1
la $a0, ($t2)
syscall
la $a0, string1
li $v0, 4
syscall
mult $t1,$t2
mflo $t1
li $v0, 1
la $a0, ($t1)
syscall
la $a0, string2
li $v0, 4
syscall
addiu $t2,$t2,1
beq $t2, 16, endloop
j loop
endloop:
li $v0, 10
syscall
Комментарии
]]>blog comments powered by Disqus
]]>