RISC_V汇编
文章平均质量分 89
Zevin~
这个作者很懒,什么都没留下…
展开
-
汇编函数的调用约定
我们要将函数的ra寄存器保存在栈里面,避免之后调用的时候这个ra寄存器没了,寄存器没了的话,函数返回地址就没了,不知道返回到那里,所以我们要用s寄存器来保存ra的值,退栈的时候恢复ra的值。调用一个函数的时候,就会压入栈帧里面,在调用A函数后,再调用B函数,B函数的地址就会继续压栈,当B函数处理完之后,在栈帧里面的B地址就会出栈,入宫函数过多的话,有可能会出现爆栈的情况。ABI就是在函数的时候吧这些寄存器普遍化修改的别名,主要使用的就是这些别名,我们之后都是使用这些别名,更好的进行理解。原创 2022-11-05 20:09:26 · 564 阅读 · 0 评论 -
汇编语言指令
lable就是要跳转到的地方,RD就是label地址处理完之后返回的地址。从RS里面取出数据,把里面的数据计算,得出的结果放在rd里面。这里的RD,就是为了跳转回来爱能执行子过程,后面的函数。auipc就是把一个数左移12位,后再加上pc值。少了一个寄存器,占12个bit位,用一个立即数。如果条件成立就跳转到最后一个最后一个地址上。是不返回的跳转,J/JR就是一个伪指令。常用于加载一个函数或者变量的地址。jr跳转到x5里面,就是死循环。bne最后一个就是要跳转的地址。跳转到x5+0的位置,x0保存。原创 2022-10-31 10:23:51 · 2787 阅读 · 1 评论 -
汇编语言初识
一个完整的RISC-V汇编程序有多条语法(statement)组成一条典型的RISC-V汇编语句包含3部分组成.S里面会保护一些预处理的指令.s里面包含的就是纯粹的汇编指令。原创 2022-10-31 09:56:06 · 2122 阅读 · 0 评论