获取地址未在字边界上对齐,MIPS32
Fetch address not aligned on word boundary ,MIPS32
好的,我有了这个简单的 mips32 程序:
.text
.globl main
main:
lw $s3,10
move $a0,$s3
li $v0,1
syscall
li $v0,10
syscall #program termination
我想做的就是加载注册 $s3 数字 10 然后打印 it.Mars 没有错误地组装它,但是当我点击 运行 时我得到以下错误:
Runtime exception at 0x00400000: fetch address not aligned on word boundary 0x0000000a
我知道
有问题
lw $s3,10
命令,但我真的不在乎如何修复 it.What 我不明白错误是什么:
获取地址未在字边界上对齐。这是什么意思?为什么会这样?
lw
表示从指定地址的内存中加载字。因为MIPS32上1个字是4个字节,所以地址必须是4的倍数。
所以,这些命令会给你同样的错误:
lw $s3,9
lw $s3,11
这些不会:
lw $s3,8
lw $s3,12
好的,我有了这个简单的 mips32 程序:
.text
.globl main
main:
lw $s3,10
move $a0,$s3
li $v0,1
syscall
li $v0,10
syscall #program termination
我想做的就是加载注册 $s3 数字 10 然后打印 it.Mars 没有错误地组装它,但是当我点击 运行 时我得到以下错误:
Runtime exception at 0x00400000: fetch address not aligned on word boundary 0x0000000a
我知道
有问题lw $s3,10
命令,但我真的不在乎如何修复 it.What 我不明白错误是什么: 获取地址未在字边界上对齐。这是什么意思?为什么会这样?
lw
表示从指定地址的内存中加载字。因为MIPS32上1个字是4个字节,所以地址必须是4的倍数。
所以,这些命令会给你同样的错误:
lw $s3,9
lw $s3,11
这些不会:
lw $s3,8
lw $s3,12