Skip to content
This repository was archived by the owner on Nov 14, 2022. It is now read-only.

Commit 11d5e3f

Browse files
authored
Add files via upload
1 parent c37a982 commit 11d5e3f

File tree

4 files changed

+157
-0
lines changed

4 files changed

+157
-0
lines changed

extras/factRecursive.asm

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
.data
2+
msg: .asciiz "Insira um numero <= 12: "
3+
fres: .asciiz "O factorial e: "
4+
5+
.text
6+
.globl main
7+
main: li $v0, 4
8+
la $a0, msg
9+
syscall
10+
li $v0, 8
11+
syscall
12+
move $t0, $v0
13+
li $v0, 4
14+
la $a0, fres
15+
syscall
16+
17+
move $a0, $t0
18+
jal fact
19+
20+
move $a0, $v0
21+
li $v0, 1
22+
syscall
23+
li $v0, 10
24+
syscall
25+
26+
fact: ble $a0, 1, return1
27+
addiu $ra, $ra, -4
28+
sw $ra, 0($sp)
29+
30+
addiu $a0, $a0, -1
31+
jal fact
32+
mul $v0, $v0, $a0
33+
34+
lw $ra, 0($sp)
35+
addiu $sp, $sp, 4
36+
jr $ra
37+
38+
return1:
39+
li $v0, 1
40+
jr $ra

extras/funcFactorial.asm

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
.eqv print_int, 1
2+
.eqv print_str, 4
3+
.eqv read_int, 5
4+
.eqv done, 10
5+
6+
.data
7+
prompt: .asciiz "Introduza um inteiro: "
8+
end1: .asciiz "O factorial do número "
9+
end2: .asciiz " é "
10+
11+
12+
13+
.text
14+
.globl main
15+
main: la $a0, prompt
16+
li $v0, print_str
17+
syscall
18+
li $v0, read_int
19+
syscall
20+
move $a0, $v0
21+
move $t2, $v0
22+
jal fact
23+
move $t0, $v0
24+
la $a0, end1
25+
li $v0, print_str
26+
syscall
27+
move $a0, $t2
28+
li $v0, print_int
29+
syscall
30+
la $a0, end2
31+
li $v0, print_str
32+
syscall
33+
move $a0, $t0
34+
li $v0, print_int
35+
syscall
36+
li $v0, done
37+
syscall
38+
39+
fact: move $t0, $a0 #i = num
40+
li $v0, 1 #res = 1
41+
for: mul $v0, $v0, $t0
42+
#subi $t0, $t0, 1 duas instruções
43+
addi $t0, $t0, -1 #uma instrução
44+
bgt $t0, $0, for
45+
jr $ra

extras/minValue.asm

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
.eqv SIZE, 8
2+
3+
.data
4+
nums: .word -2, 126, 6, 8, 5087, -3046, -131, 17
5+
msg: .asciiz "O Minimo e: "
6+
7+
.text
8+
.globl main
9+
main: li $t0, 0x7fffffff #int min = 0x7fffffff
10+
li $t1, 0 #int i = 0
11+
la $a0, nums
12+
for: bge $t1, SIZE, efor
13+
mul $t2, $t1, 4
14+
addu $t3, $a0, $t2
15+
lw $t4, ($t3) #val = nums[i]
16+
bge $t4, $t0, skip
17+
move $t0, $t4
18+
skip: addi $t1, $t1, 1
19+
j for
20+
efor: li $v0, 4
21+
la $a0, msg
22+
syscall
23+
li $v0, 1
24+
move $a0, $t0
25+
syscall
26+
li $v0, 10
27+
syscall
28+

extras/stringFuncs.asm

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
.eqv print_str, 4
2+
3+
.data
4+
dst: .space 16
5+
src: .asciiz "abcdefgh"
6+
7+
8+
.text
9+
.globl main
10+
main: la $a0, src
11+
la $a1, dst
12+
jal strcopy
13+
la $a0, dst
14+
li $v0, print_str
15+
syscall
16+
li $v0, 10
17+
syscall
18+
19+
strlen:
20+
li $t0, 0 #i = 0
21+
li $v0, 0 #n = 0 -> n é o valor de retorno logo é alocado em $v0
22+
la $a1, str
23+
lwh: addu $t1, $a1, $t0
24+
lb $t2, ($t1)
25+
beq $t2, '\0', lewh
26+
addi $v0, $v0, 1 #n++
27+
addi $t0, $t0, 1 #i++
28+
j lwh
29+
lewh: jr $ra
30+
31+
strcopy:
32+
li $t0, 0 #i = 0
33+
cwh: addu $t1, $a0, $t0
34+
addu $t2, $a1, $t0
35+
lb $t3, ($t1)
36+
beq $t3, '\0', cewh
37+
sb $t3, ($t2)
38+
addi $t0, $t0, 1
39+
j cwh
40+
cewh: sb $t3, ($t2)
41+
jr $ra
42+
43+
strcat:
44+
li $t0, 0 #i = 0

0 commit comments

Comments
 (0)