1

アドレス x +4 のメモリから単語をレジストリにロードしたいのですが、次のコードは機能しません。私は何を間違っていますか?

.data

    x:  .word   10
    y:  .word   11
    z:  .word   12

    .text
    main:
        lw  $t0, x
        lw  $t1, 4($t0)
        li  $v0, 10
        syscall

inst/data fetch エラーで Unaligned Address が発生し、例外が発生しました

4

1 に答える 1

2

x次のアドレスを正しく読み込んでいません:

lw  $t0, x

lw reg,absolute_addressその命令 (は疑似命令であるため、実際には 2 つの命令です) は、 にあるを にロードxします$t0。したがって、 を取得$t10 = 10し、次の行で address からロードしようとします10 + 4 == 14が、アドレスはワード境界で整列する必要があるため、もちろんできません。

のアドレスを xにロードしたい場合に使用する必要があるもの$t0は次のとおりです。

la  $t0, x
于 2015-01-07T17:08:15.040 に答える