这是我编译的一段程序。
func:
addi sp, sp, -32
sd ra, 24(sp)
sd s0, 16(sp)
addi s0, sp, 32
sd a0, -24(s0)
ld a0, -24(s0)
ld a0, 0(a0)
lb a0, 0(a0)
sb a0, -25(s0)
jal x0, LBB0_1
我不明白这些行:
sd a0, -24(s0)
ld a0, -24(s0)
ld a0, 0(a0)
lb a0, 0(a0)
为什么它在前两条指令中使用 s0,然后在接下来的两条指令中使用 a0,而不是像之前那样使用 sp。有没有办法编写它,使其不使用 s0/a0 而只使用 sp?