我正在尝试将 .asciiz 参数加载到寄存器中,但出现错误,
代码:

.data


    stp:
    .asciiz "stop"

.text

.globl main

main:

la $t1, stp
lw $t1, 0($t1)

我得到一个异常(exception):inst/data fetch 中的未对齐地址,

有没有办法将 .ascii 作为单词加载到寄存器中?

我想将输入变量与保存在 stp 中的文本进行比较,
我究竟做错了什么?

最佳答案

您可能需要 lblbu 指令分别用于符号或零扩展字节大小的加载。

如果您想将所有 4 个字符作为一个字加载,则通过添加适当的汇编指令(例如 .align 2 )确保字符串对齐。或者,使用 ulw 伪指令,您的汇编程序会将其转换为正确的序列。

关于assembly - 来自 .asciiz 的 MIPS lw 数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13555007/

10-11 15:38