xv6 lec5 Calling conventions and stack frames RISC-V
5.1 C程序到汇编程序的转换
- RICS-V处理器就是可以理解RISC-V指令集的处理器,任何一个处理器都有一个关联的ISA(Instruction Sets Architecture)
5.2 RISC-V vs x86
- RISC-V是精简指令集,而x86是(Reduced Instruction Set Computer),而x86是复杂指令集CISC:区别在于
- RISC指令数更少
- RISC指令更简单,一般不会一条指令做复杂的操作
- RISC开源
- 为什么现在还大部分在使用x86,虽然x86只是性能高,但是复杂并且不安全?其实intel实现了安全相关的enclave,intel还实现了一些特定的高效运算,当让把软件全部转到risc-v需要时间
5.3 gdb和汇编代码执行
5.4 RISC-V寄存器
- 汇编语句是在寄存器上执行,而不是在内存上执行,也就是说当我们在做add,sub时,我们是对寄存器操作,也就通过load将数据放到寄存器中
- 为什么s1与其他s寄存器是分开的?
- caller saved寄存器是指调用者(caller)需要保存的寄存器,因为其会被调用的函数修改
stack pointer
与frame pointer
会在函数调用开始时被修改,调用完会被改回来,所以是callee
5.5 Stack
- 这里没有修改sp等操作的prologue与修改回sp等操作的epllogue的函数是leaf function
- 非leaf 函数就由prologue与epllogue
- 非leaf 函数的一开始减少16是用来存放ra(ra就是caller function)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构