【MIT6.S081笔记4】Lecture3 RISC-V calling convention

4.1 ISA & 汇编语言

RISC-V:精简指令集
x86:复杂指令集

4.2 调用约定

规定子过程如何获取参数以及如何返回。一般规定:

  • 参数、返回值、返回地址
    注意:这里RISC-V有相应的整型指令集和浮点型指令集(参考课程视频),可以自行选择需要的部分。寄存器:a0-a7为int参数,f0-f7是float参数
  • 将子过程的准备和恢复划分到调用者(caller)和被调用者(callee)
    在这里插入图片描述
  • 没有传到寄存器的参数将以栈的方式传入
  • sp栈指针指向第一个没有传入到寄存器的参数
  • caller保存的寄存器要在过程调用后恢复该值,调用方需要将这些寄存器压入堆栈或保存到其他位置。callee保存的寄存器会被保存,即A调用B,所有A保存的寄存器在B被调用后可被B重写覆盖。

4.3 Stack

在这里插入图片描述

  • 栈:高地址到低地址,每个box叫栈帧(stack frame)
  • 栈帧最高处是return address
  • sp:stack point,指向栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值