Comment faire pour supprimer le saut de ligne en MIPS?

Donc je suis en train de rédiger un programme MIPS qui prendra une chaîne d'entrée, puis de les imprimer tous les possibles UNIQUE permutations de cette chaîne. (MEME si le mot est en Boucle, en Boucle et en Boucle sont les mêmes).

Pour ce faire, je sais que j'ai besoin de ne PAS avoir un caractère de saut de ligne à la fin de ma chaîne en entrée, mais je ne sais pas pour vous assurer qu'il n'est pas ajouté. Voici ce que j'ai à ce jour:

.data


newLine:
    .asciiz "\n"
promptUser:
    .asciiz "Enter a 20 letter or less word:\n"
word:
    .space 21

.text

main:

    la $a0, promptUser
    li $v0, 4       # Ask User for Input
    syscall

    la $a0, word
    li $a1,21       # Max number of characters 20
    li $v0,8
    syscall         # Prompting User

    la $a0,newLine      # Newline   
    li $v0, 4
    syscall

    la $a0, word        # Printing Word
    li $v0, 4
    syscall

Le seul moment où un '\n' n'est pas inclus, c'est quand le nombre de lettres est entré exactement 20. Toutes les suggestions??

CORRECTIF:

Cela fonctionne:

    li $s0,0        # Set index to 0
remove:
    lb $a3,word($s0)    # Load character at index
    addi $s0,$s0,1      # Increment index
    bnez $a3,remove     # Loop until the end of string is reached
    beq $a1,$s0,skip    # Do not remove \n when string = maxlength
    subiu $s0,$s0,2     # If above not true, Backtrack index to '\n'
    sb $0, word($s0)    # Add the terminating character in its place
skip:

OriginalL'auteur ErikAGriffin | 2012-11-29