您的位置:首页 > 编程语言

编程中寄存器的使用

2017-03-08 22:51 253 查看

1. 系统调用(system call)中的参数传递

比如对于 C 语言库函数 read 的系统调用:

result = read(fd, buffer, nbytes);


read 系统调用的参数被压入到栈中,即参数传递是通过栈来进行。但这并非唯一的参数传递方法。事实上,这还算不上效率最高的传递方法。效率最高的方法是将参数存放在指定的寄存器里面。寄存器的访问速度显然高于栈,故这种参数传递可以提升系统调用执行的效率。

在 x64 体系结构中,最前面的 8 个参数由寄存器传递。只有超过 8 个参数时,后面的参数才通过栈来传递
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息