相关疑难解决方法(0)

为什么系统调用寄存器和顺序从Intel 32bit 变成了64bit?

我正在努力记住 Linux 系统调用的顺序,以便我可以更轻松地识别这一点。然后我在这里找到了这篇论文,它说,

要在32位Linux系统调用,将系统中的电话号码eax,然后它的参数,以便在ebxecxedxesiedi,和ebp,然后调用INT 0x80的。

进而,

要在64位Linux系统调用,将系统中的电话号码rax,然后它的参数,以便在rdirsirdxr10r8,和r9,然后调用系统调用。

为什么订单在 64 位和 32 位之间变得如此残缺?我知道这个问题可能是历史问题而不是技术问题。

这完全由内核决定,对吧?是否有技术原因支持较新的约定?

linux system-calls history

6
推荐指数
2
解决办法
1463
查看次数

标签 统计

history ×1

linux ×1

system-calls ×1