错误尝试执行非指令

时间:2015-11-12 15:07:16

标签: mips qtspim

我的输入

.text
.globl start


start:
# load with sign extension
lw $t0, memory
lh $t1, memory
lb $t2, memory


# load without sign extension
lhu $t3, memory
lbu $t4, memory

.data 
memory:
.word 0xABCDE080 # little endian: 80E0CDAB

我的错误

  

尝试在0x00400028执行非指令

Attempt to execute non-instruction at 0x00400028

这是什么意思?

1 个答案:

答案 0 :(得分:0)

这意味着CPU正在尝试执行数据

您的程序开始执行标签start处的代码,它将执行所有加载指令,然后您没有提供任何代码,因此CPU将继续执行您上一条指令后存储的内容&# 34;数据"

所以在你上一次指示之后你应该:

  • 发出jr $ra到"从函数返回"如果你正在编写一个函数
  • 发出系统调用10以终止执行,即:

    li $v0, 10

    syscall

  • 永远循环,即:

    loop: j loop