QtSpim字符插入

时间:2016-04-20 03:35:39

标签: mips spim

  

程序一次接受单字母键盘输入。该   字母输入必须是小写字母a到z(不是大写或   允许使用非字母字符;只有小写字母)。只有一个   信必须一次输入;确保角色只是一个   小写字母。

     

•在数据声明中,声明按字母顺序排列   字母串(名为“str”),a-z。

     

•程序必须输入a   键盘中的字符,确定它在字符串中的位置,以及   在字符串中为该字符创建一个空格,将其插入   适当的字母顺序。

     

•按字母顺序排列的26后字符串   字母,声明30个空值的序列(使用“.space”   指令),作为插入字符时字符串的扩展空间   进入按字母顺序排列的列表。

     

•在任何时候,您都可以要求打印   当前字符串(即,具有尽可能多的字母插入   通过键盘输入大写字母P。

     

•最后,这个程序   必须使用递归例程将字母插入正确的点   在该计划中。

到目前为止我的代码

    .data
 str:   .asciiz"abcdefghijklmnopqrstuvwxyz\n"
 espace:    .space 30
 prompt:    .asciiz "Please enter a lowercase letter \n"
 error1:    .asciiz "Error! Please input a lowercase letter. \n"
 answer:    .asciiz "The alphebetized letters so far are \n"

    .text
 main:  la $s0,0
    li $v0,4
    la $a0,prompt
    syscall
 loop:  li $v0,12
    syscall
    move $t0,$v0
    blt $t0,61,error    #if less than a
    bgt $t0,80,error    #if more than z
    bge $t0,0x50,print  #when user enters P, print
 loop2: lb $t2,str($s0)     #load first byte of string
    bge $t0,$t2,store   #if input char=string char, store it
    addi $s0,$s0,1      #next char in string
    j loop
 store: la  $t0,str+26
    li  $t1,'a'
    sb  $t1,($t0)     # append an 'a' to the string
    sb  $zero,1($t0)  # add a NULL terminator after the 'a'
    sw $t0,str($s0)     #store char in string
    addi $s0,$s0,1 
    j loop
 error: li $v0,4
    la $a0,error1       #print error message
    syscall
    j loop          #jump back to loop
 print: li $v0,4
    la $a0,answer       #print dialogue
    syscall
    li $v0,4
    la $a0,str      #print string
    syscall

我只需要知道如何编写代码,以便在字符串中输入字符

0 个答案:

没有答案