.data
-input: .space 20
+input: .space 50
input_string: .asciiz "Saisir un mot ? "
msg_palindrome_part_1: .asciiz "Le mot "
msg_palindrome_part_2: .asciiz " un palindrome"
-msg_is_palindrome: .asciiz "est"
-msg_is_not_palindrome: .asciiz "n'est pas"
+msg_is: .asciiz " est"
+msg_is_not: .asciiz " n'est pas"
newline: .asciiz "\n"
.text
syscall
li $v0, 8
la $a0, input
- li $a1, 20
+ li $a1, 50
syscall
jr $ra
clean_and_length_word:
- la $s4, ($zero)
+ la $s4, ($zero) # word length
la $s0, input # $s0 contains base address of the string buffer
addi $s3, $0, '\n' # $s3 = '\n'
loop1:
addi $s4, $s4, 1
j loop1
end1:
+ sb $0, 0($s0) # replace newline with 0
la $a2, ($s4)
jr $ra
la $a0, input
li $v0, 4
syscall
- la $a0, msg_is_palindrome
+ la $a0, msg_is
li $v0, 4
syscall
la $a0, msg_palindrome_part_2
la $a0, input
li $v0, 4
syscall
- la $a0, msg_is_not_palindrome
+ la $a0, msg_is_not
li $v0, 4
syscall
la $a0, msg_palindrome_part_2
la $a0, newline
li $v0, 4
syscall
- jr $ra
\ No newline at end of file
+ jr $ra