linux参数传递规则
来源:互联网 发布:淘宝宝贝详情怎么复制 编辑:程序博客网 时间:2024/05/29 14:19
一般规则为, 当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。当参数为 7 个以上时, 前 6 个与前面一样, 但后面的依次从 "右向左" 放入栈中。
例如:
CODE
(1) 参数个数少于7个:
f (a, b, c, d, e, f);
a->%rdi, b->%rsi, c->%rdx, d->%rcx, e->%r8, f->%r9
g (a, b)
a->%rdi, b->%rsi
有趣的是, 实际上将参数放入寄存器的语句是从右到左处理参数表的, 这点与32位的时候一致.
CODE
2) 参数个数大于 7 个的时候
H(a, b, c, d, e, f, g);
a->%rdi, b->%rsi, c->%rdx, d->%rcx, e->%rax
g->8(%esp)
f->(%esp)
call H
易失寄存器:
%rax, %rcx, %rdx, %rsi, %rdi, %r8, %r9 为易失寄存器, 被调用者不必恢复它们的值。
显然,这里出现的寄存器大多用于参数传递了, 值被改掉也无妨。而 %rax, %rdx 常用于
数值计算, %rcx 常用于循环计数,它们的值是经常改变的。其它的寄存器为非易失的,也
就是 rbp, rbx, rsp, r10~r15 的值如果在汇编模块中被改变了,在退出该模块时,必须将
其恢复
- linux参数传递规则
- ARM参数传递规则
- ARM参数传递规则
- 参数传递规则
- ARM参数传递规则
- x86参数传递规则
- C6000的参数传递规则
- 函数参数传递规则(一)
- python函数参数传递规则
- ARM中函数参数传递规则
- python 函数调用参数传递规则
- ARM函数调用时参数传递规则
- 函数参数一:传递与匹配规则
- arm函数调用参数传递规则
- arm汇编函数调用参数传递规则
- linux参数传递
- Linux参数传递
- linux shell 参数传递
- 理解VMware虚拟机下网络连接的三种模式
- 项目日志一
- nfs
- gdb调试
- 两种正则
- linux参数传递规则
- 信令网
- 1号信令、7号信令和PRI信令
- 编写一个C程序,它能读入一个正整数n(09时用ABCD…Z补
- 我的家
- 信令点编码
- E1通信的基础知识
- 检测用户是否登陆的拦截器
- 自定义控件属性的一些特性