社区活动专版
直播中

jyaxz

11年用户 428经验值
擅长:嵌入式技术
私信 关注

【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集

【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集

汇编语言

将C语言翻译成可执行的机器语言的重要步骤包括编译过程,汇编过程,链接过程。
30.jpg

函数调用约定过程分为六个阶段:

1) 将参数存放到函数可访问的位置;

2) 跳转到函数入口(使用RV32I的jal指令);

3) 获取函数所需的局部存储资源,按需保存寄存器;

4) 执行函数功能;

5) 将返回值存放到调用者可访问的位置,恢复寄存器,释放局部存储资源;

6) 由于程序可从多处调用函数,故需将控制权返回到调用点(使用ret指令)。

汇编器支持很多伪指令:
31.jpg

32.jpg

链接器的作用是将多个汇编器输出的扩展名为o的文件和已有的机器码“拼接”为一个可执行的目标文件。

扩展指令集

RISC-V除了基本指令集外,还支持多种扩展指令集,例如RV32M(乘法和除法指令),RV32F和RV32D(单精度和双精度浮点数),RV32A(原子指令),RV32C(压缩指令),RV32V(向量),RV64(64位地址指令),RV32/64特权架构;未来还有多种可选的扩展。

指令集扩展.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分