Assembly 是否使用Intel寄存器来;“预期用途”;提高效率?

Assembly 是否使用Intel寄存器来;“预期用途”;提高效率?,assembly,intel,Assembly,Intel,声称每个登记册都有一个预期目的,更重要的是 当英特尔的工程师设计 原来的8086处理器,他们有 每个人心中都有一个特殊的目的 登记因为他们设计了 指令集,他们创建了许多 优化和特殊说明 基于他们期望的功能 要执行的每个寄存器。使用 根据英特尔的 原始计划允许代码执行 充分利用这些优化。 不幸的是,这似乎是一个迷失的方向 艺术很少有程序员知道英特尔的 总体设计,大多数编译器 过于简单化或专注于 使用寄存器的执行速度 对。了解 寄存器和指令集匹配 然而,团结在一起是一个重要的问题 踏上通往轻松之路

声称每个登记册都有一个预期目的,更重要的是

当英特尔的工程师设计 原来的8086处理器,他们有 每个人心中都有一个特殊的目的 登记因为他们设计了 指令集,他们创建了许多 优化和特殊说明 基于他们期望的功能 要执行的每个寄存器。使用 根据英特尔的 原始计划允许代码执行 充分利用这些优化。 不幸的是,这似乎是一个迷失的方向 艺术很少有程序员知道英特尔的 总体设计,大多数编译器 过于简单化或专注于 使用寄存器的执行速度 对。了解 寄存器和指令集匹配 然而,团结在一起是一个重要的问题 踏上通往轻松之路 尺寸编码

是否有其他来源证实这篇文章?如果是的话,我真的很想看看


请注意,我并不是说像
STOS
这样的快速操作使用
edi
——我只是想知道如果我使用
eax
esi
作为计数器而不是
ecx
,是否会导致性能下降?或者这仅仅是关于可读性的问题?

否,现在不是了,或者至少不是很经常。使用ECX作为计数器可以使用循环指令。曾经,这是一个显著的优势,但在最新的CPU上,循环的执行时间比DEC-ECX/JNZ的组合要长。其可能的优势在于,它减少了内存带宽的使用,这是一个越来越常见的瓶颈。当/如果您可以使用其他形式(如LOOPNZ)时,这也可能是一个优势,使用单独的指令进行模拟可能会相对复杂。

指令集中有使用特定寄存器的指令,这些寄存器更小(通常更快)而不是针对任何寄存器的等效函数。

最明显的是AX与其他函数的对比。