无法加载两个字符并打印,它只打印一个 - MIPS

时间:2017-06-16 16:57:37

标签: mips

所以问题是,我有一条消息,我从输入中得到,然后我希望它搜索元音,当它找到它时,它应该添加下一个辅音。例如:Bruno - Bruvnop;香蕉 - Babnabnab; a - ab; e - ef;我 - ij; o - op;你 - v。 但是当我这样做的时候,之后删除了char,因为我用辅音保存它,所以我尝试保存char,然后写入它之后打印但是它不起作用。你能帮帮我吗?

 .text
.globl  main

main:
# display prompt
li      $v0, 4
la      $a0, prompt
syscall
# accept input string
li      $v0, 8
la      $a0, str
li      $a1, 82
syscall

li      $t1, 0          # initiate index
li      $t3, 0          # vowel count

poploop:
lb $t0 str($t1)

# check if vowel
li      $t2, 'a'       # a
beq     $t0, $t2, TESTEa
JA:
li      $t2, 'e'       # e
beq     $t0, $t2, TESTEe
JE:
li      $t2, 'i'       # i
beq     $t0, $t2, TESTEi
JI:
li      $t2, 'o'       # o
beq     $t0, $t2, TESTEo
JO:
li      $t2, 'u'       # u
beq     $t0, $t2, TESTEu
JU:

# if not a vowel, store it at current index in string less vowel count

sb $t0, str($t1)
j next
nop

TESTEa: # if vowel, inc count
       (...)
TESTEe:
       (...)
TESTEi:
       (...)
TESTEo:
       (...)
TESTEu:               #They do all the same basically
sb $t2, str($t1)
addi $t1, $t1, 1
lb $t2 str($t1)
move $t2, $a1
li $t0, 'v'
sb $t0, str($t1)
addi $t1, $t1, 1
sb $t2, str($t1)
j JU
next:
addi $t1, $t1, 1

beqz $t0, done       # once we reach null char, finish
nop
j poploop
nop

done:   
li $v0, 4
la $a0, str
syscall
li $v0, 10         # exit program
syscall
nop

.data
 str: .space 82
 prompt: .asciiz "Input a string:\n"

0 个答案:

没有答案