-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPalindromo.asm
More file actions
76 lines (59 loc) · 802 Bytes
/
Copy pathPalindromo.asm
File metadata and controls
76 lines (59 loc) · 802 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#Palindromo
.data
txt1: .asciz "Digita una stringa di max 16 caratteri: "
np: .asciz "Non Palindroma"
p: .asciz "Palindroma"
.text
.globl main
main:
la a0, txt1
li a7, 4
ecall
addi sp, sp, -17
mv a0, sp
li a1, 16
li a7, 8
ecall
mv a0, sp
jal conta
jal inverti
jal controllo
la a0, p
li a7, 4
ecall
li a7, 10
ecall
conta:
lb t0, (a0)
beqz t0, exit
addi a0, a0, 1
addi t1, t1, 1
j conta
inverti:
addi sp, sp, -17
addi t1, t1, 1
mv a0, sp
add a0, a0, t1
addi sp, sp, 16
inverti_loop:
addi sp, sp, 1
lb t0, (sp)
beqz t0, exit
sb t0, (a0)
addi a0, a0, -1
j inverti_loop
controllo:
lb t0, (a0)
beqz t0, exit
lb t1, 17(a0)
beqz t1, exit
bne t0,t1, nonp
addi a0, a0, 1
nonp:
la a0, np
li a7, 4
ecall
li a7, 10
ecall
exit:
ret