在汇编语言中,EAX、EBX和ECX有什么区别?
eax, ebx, ecx等实际上是寄存器,可以看作是类似于高级语言变量的"硬件"变量。通过指令如mov、add或cmp,可以直接在软件中使用寄存器。前缀e代表extended,意味着寄存器宽度为32位。另一方面,64位寄存器以r开头。
这些寄存器并不总是用于下面所示的目的。此图显示了Linux 64位ABI的寄存器使用情况。
尽管此捕获中未描述所有寄存器。例如,*ip是一个特殊的寄存器(进程计数器),它保存下一条要执行的指令。
您可以在完整的ABI中找到。某些信息是特定于Linux的,但大多数仍然适用于任何POSIX兼容系统。