【发布时间】:2011-04-18 22:44:15
【问题描述】:
为什么通用寄存器按原样排序(eax、ecx、edx、ebx)? 例如,对于“inc”指令,操作码是:
inc eax - 40
inc ecx - 41
inc edx - 42
inc ebx - 43
这样排序有什么原因吗?
【问题讨论】:
-
不知道为什么您认为它们必须按任何特定顺序排列,除非它们当然被推入堆栈。此外,这取决于您执行哪种增量,“字”、“字节”等......目标存储可以是内存位置或寄存器。
-
因为它是 EAX、EBX 等。这些都是 32 位寄存器......好吧,除了 ebx,它们似乎是字母,不是吗?