有人可以解释我如何做lui
工作,什么是" 4097
"代表,是什么添加8
到$t0
是什么意思?
.data 0x10010000
blank: .asciiz " " # 4097
newline: .asciiz "\n" # 4097 + 2
#input_start
Alength: .word 13
Aarray: .word 130, 202, 30, 4440, 530, 532, 33, 204, 8, 524, 8933, 92, 10
#input_end
.text
lui $t0, 4097
ori $a0, $t0, 8 # address of A[]
lw $a1, 4($t0) # load length
Run Code Online (Sandbox Code Playgroud)
Jim*_*uck 17
4097 = 1001十六进制
所以,第一条指令将0x10010000放入寄存器t0.lui是"load upper immediate","upper"表示高16位,"immediate"表示你给它一个字面值(4097).4097作为"上限"值变为0x10010000.
ori是"或立即",8是立即值,因此a0中的结果地址是0x10010008,这是Aarray所居住的地址.
最后的指令lw是"加载字",它从t0中的存储器地址加载(此时仍然只是0x10010000)加上4个字节(4是从t0开始的偏移,导致ALeng的生存地址)4个字节数据转换成a1.
归档时间: |
|
查看次数: |
36890 次 |
最近记录: |