關於傳參數時對應寄存器的問題

對於x86操作系統來說,除非指定以寄存器傳遞(通過"regparm (NUMBER)"注:NUMBER<=3指定)。
如果指定寄存器傳遞參數,則eax爲第一個參數,edx爲第二個參數, ecx爲第三個參數,往下依次爲edx以及esi和edi。

64位系統用戶應用層用整數寄存器%rdi ,%rsi,%rdx,%rcx, %r8以及 %r9來傳參。而內核接口用%rdi ,%rsi,%rdx,%r10,&r8以及%r10來傳參,並且用syscall指令而不是80中斷進行系統調用。
x86和x64都用寄存器rax來保存調用號和返回值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章