是针对现代处理器计算的EAX寄存器



挑选英特尔寄存器的文章读取:

[因为]大多数计算出现在累加器中,因此X86体系结构包含许多优化的说明,用于将数据移入和移出此寄存器。首先,处理器具有16个字节大小的XCHG Opcodes,用于在累加器和任何其他寄存器之间交换数据。这些并不是很有用,但是它们表明了英特尔工程师比其他寄存器更喜欢累加器。对于他们来说,将数据交换到累加器上比使用它的位置更好。将数据移入累加器的其他说明是LOD,STOS,IN,OUT,INS,INS,OUTS,SCAS和XLAT。最后,MOV指令具有一个特殊的单字节OPODE,用于从恒定内存位置将数据移动到累加器中。

在您的代码中,尝试在蓄能器中执行尽可能多的工作。

作为2003年的文章,我很想知道这是否是真正的现代处理器(2017年的Hello(。为引用英特尔文档的点。

现代英特尔处理器使用一种称为 register重命名的技术。在简而在您的大会中查看。CPU管理寄存器并将其映射到根据需要注册的名称。因此,就CPU而言,所有通用寄存器都是无法区分的。

当手动编程组件时,注册选择可能很重要,因为某些说明(例如单场imul(仅在固定寄存器上运行。但是,这些说明很少见,其中大多数是过时的,因此在实践中的选择要少得多。

另一个根据您的呼叫约定的问题,在返回时必须保留某些寄存器,因此在为自己的目的使用它们之前,您必须保存其价值。如果您的功能中只需要一些寄存器,则避免使用此类寄存器很有用,以便您可以摆脱相应的推动和弹出。

最新更新