s0 - s11 保存寄存器
sp gp(global pointer) tp(thread pointer) fp(frame pointer,获取堆栈中的值)
t0-t6
a0-a5(function arguments) s0(save register/frame pointer)-s1(save register) sp(stack pointer) ra(return address)
x0 == 0
0x2001ac50 <+0>: addi sp,sp,-32 #sp = sp - 32调整堆栈指针寄存器,分配32字节的栈空间
0x2001ac52 <+2>: sw s1,20(sp)#压栈 保存 s1寄存器的值
0x2001ac54 <+4>: mv s1,a0
0x2001ac56 <+6>: sw s0,24(sp)
0x2001ac58 <+8>: sw s2,16(sp)
0x2001ac5a <+10>: sw s3,12(sp)
0x2001ac5c <+12>: sw ra,28(sp) #压栈 保存返回地址
0x2001ac5e <+14>: li s0,704#把立即数加载到s0寄存器中
0x2001ac62 <+18>: lui s3,0x2003d#把(立即数>>12),高20位,加载到寄存器s3 S3=0X20000
0x2001ac66 <+22>: li s2,712#把立即数加载到s2中
0x2001ac6a <+26>: mv a1,s0#寄存器s0的值复制到寄存器a1中 = 704
0x2001ac6c <+28>: addi a0,s3,-508 # 0x2003ce04
0x2
RISCV-汇编
最新推荐文章于 2024-07-28 11:23:10 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)