RISCV-汇编

本文详细介绍了RISC-V架构中的汇编指令,包括寄存器使用、堆栈操作和函数调用过程。通过具体的指令序列展示了如何保存和恢复寄存器值,以及如何进行跳转和返回操作。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值