程式設計中暫存器的使用

weixin_30639719發表於2020-04-05

1. 系統呼叫(system call)中的引數傳遞

比如對於 C 語言庫函式 read 的系統呼叫:

result = read(fd, buffer, nbytes);

read 系統呼叫的引數被壓入到棧中,即引數傳遞是通過棧來進行。但這並非唯一的引數傳遞方法。事實上,這還算不上效率最高的傳遞方法。效率最高的方法是將引數存放在指定的暫存器裡面。暫存器的訪問速度顯然高於棧,故這種引數傳遞可以提升系統呼叫執行的效率。

在 x64 體系結構中,最前面的 8 個引數由暫存器傳遞。只有超過 8 個引數時,後面的引數才通過棧來傳遞

轉載於:https://www.cnblogs.com/mtcnn/p/9422060.html

相關文章