MIPS - 如何对字符串执行转换?

问题描述 投票:0回答:1

我对MIPS编程很陌生,而且我一直困扰着我一直试图编程的问题。我意识到我想做的事可能很傻,但请耐心等待我!这是我正在尝试做的事情的描述。

让我们说我有这个字符串:“~~ Hello World!”。我想获得字符串“Hello World!”将此字符串左移两个字符。到目前为止,我最接近执行此类操作的尝试是:

让寄存器$ t0包含字符串“~~ Hello World!”。我想在这个字符串上执行2位左移并存储在寄存器$ t1中。

.data
     output1: .asciiz "The value in $t1 is: "

.text
     sll $t1, $t0, 2   # attempt at shifting left by 2 bits 
     li $v0, 4
     la $a0, output1
     syscall           # print "The value in $t1 is: "
     li $v0, 4
     move $a0, $t1
     syscall           # print the contents of the register $t1

但是,当我汇编这些指令时,我遇到了一个超出范围错误的地址。任何人都可以指出我出错的地方,或许我应该做些什么来实现这个目标?

string mips shift
1个回答
0
投票

我已经明白了!这是一个更新的代码段,现在包含工作说明。我会留下这篇文章,以防它帮助其他人。

.data
     output1: .asciiz "The value in $t1 is: "
.text
     add $t0, $t0, 2   # shifts the string left by 2 bits (CORRECT) 
     li $v0, 4
     la $a0, output1
     syscall           # print "The value in $t1 is: "
     li $v0, 4
     move $a0, $t1
     syscall           # print the contents of the register $t1
© www.soinside.com 2019 - 2024. All rights reserved.