Mips 尝试执行非指令时出错
我的输入Mips 尝试执行非指令时出错,mips,qtspim,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处执行
.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处执行非指令
这意味着什么?这意味着CPU正在尝试执行数据 您的程序在标签
start
处开始执行代码,它将执行您的所有加载指令,然后您没有提供任何代码,因此CPU将继续执行上一条指令之后存储的内容,即“数据”
因此,在上一次指导之后,您应该:
- 如果您正在编写函数,则向“从函数返回”发出
jr$ra
- 发出系统调用10以终止执行,即:
li$v0,10
syscall
- 永远循环,即:
loop:j loop
- 表示CPU正在尝试执行数据
您的程序在标签
start
处开始执行代码,它将执行您的所有加载指令,然后您没有提供任何代码,因此CPU将继续执行上一条指令之后存储的内容,即“数据”
因此,在上一次指导之后,您应该:
- 如果您正在编写函数,则向“从函数返回”发出
jr$ra
- 发出系统调用10以终止执行,即:
li$v0,10
syscall
- 永远循环,即:
loop:j loop