MIPS32
Версия реализации MIPS языка программирования Assembler32 битная реализация MIPS.
Примеры:
Факториал - Assembler (525):
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
Числа Фибоначчи - Assembler (524):
Эмулятор MARS. Вывод консоли MARS:
The Fibonacci numbers are:
1 1 2 3 5 8 13 21 34 55 89 144
-- program is finished running --
Программа выводит 15 чисел Фибоначчи. Количество чисел можно изменить в секции .data.
.data
space:.asciiz " "
head: .asciiz "The Fibonacci numbers are:\n"
fib: .word 0 : 15
size: .word 15
.text
main:
la $t0, fib
la $t5, size
lw $t5, 0($t5)
li $t2, 1
add.d $f0, $f2, $f4
sw $t2, 0($t0)
sw $t2, 4($t0)
addi $t1, $t5, -2
loop:
lw $t3, 0($t0)
lw $t4, 4($t0)
add $t2, $t3, $t4
sw $t2, 8($t0)
addi $t0, $t0, 4
addi $t1, $t1, -1
bgtz $t1, loop
la $a0, fib
move $a1, $t5
jal print
li $v0, 10
syscall
print:
add $t0, $zero, $a0
add $t1, $zero, $a1
la $a0, head
li $v0, 4
syscall
out:
lw $a0, 0($t0)
li $v0, 1
syscall
la $a0, space
li $v0, 4
syscall
addi $t0, $t0, 4
addi $t1, $t1, -1
bgtz $t1, out
jr $ra
Комментарии
]]>blog comments powered by Disqus
]]>