这篇文章声称每个寄存器都有一个预期的目的,更重要的是,
当英特尔的工程师设计最初的 8086 处理器时,他们对每个寄存器都有一个特殊的用途。在设计指令集时,他们根据他们期望每个寄存器执行的功能创建了许多优化和特殊指令。根据英特尔最初的计划使用寄存器可以让代码充分利用这些优化。不幸的是,这似乎是一门失传的艺术。很少有程序员了解英特尔的整体设计,而且大多数编译器过于简单化或专注于执行速度,无法正确使用寄存器。然而,了解寄存器和指令集如何组合在一起是实现轻松大小编码的重要一步。
是否有任何其他来源可以证实这篇文章?如果是这样,我真的很想检查一下。
请注意,我不是在谈论像STOS
使用快速操作这样的情况edi
- 我只是想知道如果我使用eax
和esi
作为计数器而不是是否会导致性能下降,ecx
或者仅仅是关于可读性?