Fixlets to palindrome example
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 26 Jun 2017 12:15:15 +0000 (14:15 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 26 Jun 2017 12:21:33 +0000 (14:21 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
TD4/mips3.asm

index 889258c222619ef1eee2afb3c572cdd357b67770..2d22a8517632ad65dc003136596be307763b9f36 100644 (file)
@@ -1,10 +1,10 @@
 .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
@@ -21,12 +21,12 @@ input_word:
     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:
@@ -36,6 +36,7 @@ loop1:
     addi $s4, $s4, 1
     j    loop1
 end1:
+    sb   $0, 0($s0)     # replace newline with 0
     la   $a2, ($s4)
     jr   $ra
     
@@ -81,7 +82,7 @@ display_palindrome:
     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
@@ -99,7 +100,7 @@ display_not_palindrome:
     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
@@ -108,4 +109,4 @@ display_not_palindrome:
     la   $a0, newline
     li   $v0, 4
     syscall
-    jr   $ra
\ No newline at end of file
+    jr   $ra