gpt4 book ai didi

assembly - MIPs 程序使用堆栈反转字符串

转载 作者:行者123 更新时间:2023-12-04 12:27:04 24 4
gpt4 key购买 nike

我在运行我的程序时遇到错误。这是我得到的错误。

我遇到异常错误。错误提示“数据/堆栈读取地址错误”

错误提示“指令引用 undefined symbol ”

在控制台中它说"要反转的字符串:

COSC 300 Exception 7 [Bad data address] 发生并被忽略

程序

.data

str: .asciiz "String to be reversed : \n"
msg: .asciiz "COSC 300"
ans: .asciiz "The string reversed is : "

.text
.globl main



main:

la $a0, str #print string
li $v0, 4
syscall

la $a0, msg #print string
li $v0, 4
syscall

la $t0, msg #load a string to be reversed



loop:
lb $t0, 0 ($t0) #load char from msg
beqz $t0, stringEnd # if null end loop
addi $sp, $sp -1 # reduce stack pointer
sb $t0, 0 ($sp) # store t0 into stack
addi $t1, $t1, 1 # gets next char
j loop


stringEnd:
la $t1, msg1


storeLoop:
lb $t0, 0($t0)
beqz $t0, end
lb $t4, 0($sp)
sb $t4, 0 ($t0)
addi $t1, $t1, 1
addi $sp, $sp, 1
j storeLoop


end:
la $a0, ans
li $v0, 4
syscall

move $a0, $t4
li $v0, 4
syscall

li $v0, 10
syscall

最佳答案

有一件事看起来有点滑稽:

在 loop 和 storeLoop 中,您都使用 $t0 作为指针以及要加载的字符。这意味着您第一次加载一个字节时,您将破坏您的指针。

关于assembly - MIPs 程序使用堆栈反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com