dar*_*sky 7 assembly mips mars-simulator
在MIPS中,la
指令转换为lui
和ori
.但是,MARS Simulator似乎根本不这样做.当我转储以下机器代码时:
.text
la $a0, array
la $a1, array_size
lw $a1, 0($a1)
.data
array: .word 0:10
array_size: .word 10
message: .asciiz "The sum of numbers in array is: "
Run Code Online (Sandbox Code Playgroud)
我明白了:
00100000000001000010000000000000
00100000000001010010000000101000
10001100101001010000000000000000
Run Code Online (Sandbox Code Playgroud)
这显然是.它倾销la
为一条指令.MARS做什么?我该如何解释la
为lui
和ori
?
谢谢,
这里发生的事情是,你的汇编正在编制这些la
为s addi $<dest>, $0, <value>
.只有在16位立即数中不能表示的值才需要双指令序列; 您正在使用这里的值样子0x2000
和0x2028
,使其适合在一个单一的指令.
我该如何解释
la
为lui
和ori
?
加载更大的常量.:)
您的汇编程序也可以选择强制使用完整序列,即使它没有必要.
归档时间: |
|
查看次数: |
25172 次 |
最近记录: |