太原注册公司网站,wap网站asp源码,零件加工网,公众号首图制作网站a0 - a7#xff08; x10 - x17 #xff09;
调用者保存#xff0c;用来传递输入参数。其中的 a0 和 a1 还用来保存返回值
t0 - 6( x5 - x7, x28 - x31 )
调用者保存#xff0c;作为临时寄存器使用#xff0c;在被调函数中可以随意使用无需保存
s0 - s11( x8 - x9, x18…a0 - a7 x10 - x17
调用者保存用来传递输入参数。其中的 a0 和 a1 还用来保存返回值
t0 - 6( x5 - x7, x28 - x31 )
调用者保存作为临时寄存器使用在被调函数中可以随意使用无需保存
s0 - s11( x8 - x9, x18 - x27 )
被调用者保存作为临时寄存器使用被调函数保存后才能在被调函数中使用
zero( x0 )
它恒为零函数调用不会对它产生影响
ra( x1 )
调用者保存被调用者函数可能也会调用函数在调用之前就需要修改 ra 使得这次调用能正确返回。因此每个函数都需要在开头保存 ra 到自己的栈帧中并在结尾使用 ret 返回之前将其恢复。栈帧是当前执行函数用于存储局部变量和函数返回信息的内存结构
sp( x2 )
调用者保存栈指针 (Stack Pointer) 寄存器它指向下一个将要被存储的栈顶位置
fp( s0 )
被调用者保存它既可作为s0临时寄存器也可作为栈帧指针Frame Pointer寄存器表示当前栈帧的起始位置。fp 指向的栈帧起始位置 和 sp 指向的栈帧的当前栈顶位置形成了所对应函数栈帧的空间范围
gp( x3 ) , tp( x4 )
在一个程序运行期间都不会变化因此不必放在函数调用上下文中