Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pointers 在MIPS/MARS中如何在反转前添加/打印用户输入_Pointers_Assembly_Mips_Sql Server Mars_Mips64 - Fatal编程技术网

Pointers 在MIPS/MARS中如何在反转前添加/打印用户输入

Pointers 在MIPS/MARS中如何在反转前添加/打印用户输入,pointers,assembly,mips,sql-server-mars,mips64,Pointers,Assembly,Mips,Sql Server Mars,Mips64,这是我在火星上的密码。它请求一个名称并将其反转。示例输出: 输入您的姓名(格式为“FIRST-LAST”):arya stark 相反的是:斯塔克,雅利娅 --程序已完成运行(从底部掉落)-- 我想说: 输入您的姓名(格式为“FIRST-LAST”):arya stark 雅利娅·斯塔克反过来说是:斯塔克,雅利娅 --程序已完成运行(从底部掉落)-- 我该怎么做 ############################ data segment #########################

这是我在火星上的密码。它请求一个名称并将其反转。示例输出:

输入您的姓名(格式为“FIRST-LAST”):arya stark 相反的是:斯塔克,雅利娅 --程序已完成运行(从底部掉落)--

我想说: 输入您的姓名(格式为“FIRST-LAST”):arya stark 雅利娅·斯塔克反过来说是:斯塔克,雅利娅 --程序已完成运行(从底部掉落)--

我该怎么做

############################ data segment ################################
.data
promptuser: .asciiz "Enter your name (format 'FIRST LAST'): "
putComma:   .asciiz ", " #prompt for string
userinput:  .space 400 #string that user enters
reverse:    .asciiz " reversed is : " #prompt for string
############################ code segment ################################ 
.text 
.globl main

main: 
    li $v0, 4
    la $a0, promptuser  #prints a srting prompt to the user 
    syscall
    
    li $v0, 8
    la $a0, userinput   #asks the user to enter name
    li $a1, 100
    syscall
    
    move $s0, $a0        #move data to s0
    move $s1, $a1
    li $v0, 4
    la $a0, reverse     #prompt to reverse
    syscall

    move $s1,$s0
loop: 
    #loop while end of string
    lb $a0, 0($s0)      #load first character to a0
    addi $s0, $s0, 1    #add index by one
    beq $a0, $zero, exit    #else print character
    beq $a0, 32, exitLoop   #if current character is space go to loop
    j loop

exitLoop:

loopPrint: 
    lb $a0, 0($s0)          #load first character to a0
    addi $s0, $s0, 1        #add index by one
    beq $a0, $zero, printOtherStr   #else print character
    beq $a0, 10, printOtherStr  #else print character
    beq $a0, 32, exit       #if current character is space go to loop
    li $v0, 11
    syscall
    j loopPrint

printOtherStr:
    li $v0, 4
    la $a0, putComma    #padding comma to name
    syscall

printOther:
    lb $a0, 0($s1)      #load first character to a0
    addi $s1, $s1, 1    #add index by one
    beq $a0, $zero, exit    #else print character
    beq $a0, 32, exit   #if current character is space go to loop
    li $v0, 11
    syscall
    j printOther 
    
    exit: