【发布时间】:2015-04-05 21:46:19
【问题描述】:
根据架构调用约定部分中的syscall man page,它说明了每个架构系统调用参数的各种寄存器顺序。除了 x86_64 之外,它们都具有某种逻辑有序的意义。例如,arm64 依次使用 x0、x1、x2、x3、x4,然后是 x5,这似乎是合乎逻辑的,并且是按数字顺序排列的。但是对于 x86_64,顺序是 rdi、rsi、rdx、r10、r8,然后是 r9。对我来说,这似乎不是一个合乎逻辑的顺序,这引起了我的困惑。为什么x86_64会这样?
谢谢!
【问题讨论】:
-
下一个问题:当已经将 8 位跳转称为“短”时,为什么他们将 32 位跳转称为“近”而不是“远”。
标签: assembly x86-64 system-calls arm64