2009-12-14 7 views
6

This article afirmaciones de que cada registro tiene un propósito y lo más importante,¿El uso de un registro Intel para su "propósito previsto" aumenta la eficiencia?

Cuando los ingenieros de Intel diseñados el procesador original 8086, tenían un propósito especial en mente para cada registro . A medida que diseñaron el conjunto de instrucciones , crearon muchas optimizaciones e instrucciones especiales según la función que esperaban cada registro para realizar. El uso de los registros de acuerdo con el plan original de Intel permite que el código tome el con todas las ventajas de estas optimizaciones. Desafortunadamente, esto parece ser un arte perdido . Pocos codificadores conocen el diseño general de de Intel, y la mayoría de los compiladores también son simplistas o se centraron en la velocidad de ejecución para usar los registros correctamente. Entender cómo los registros y el conjunto de instrucciones se ajustan a juntos, sin embargo, es un paso importante en el camino a la codificación de tamaño sin esfuerzo.

¿Hay alguna otra fuente para corroborar este artículo? Si es así, me gustaría comprobarlo.

Tenga en cuenta que no estoy hablando de situaciones en las operaciones rápidas como STOS utiliza edi - Me pregunto si hay alguna degradación del rendimiento si uso eax y esi como contadores en lugar de ecx o se trata sólo de lectura?

Respuesta

4

No, realmente ya no más, o al menos no muy a menudo de todos modos. El uso de ECX como contador le permite usar la instrucción LOOP. En un momento, eso fue una ventaja significativa, pero en las CPU más recientes, un LOOP tarda más en ejecutarse que la combinación de DEC ECX/JNZ donde sea. La posible ventaja es que reduce el uso de ancho de banda de memoria, que es un cuello de botella cada vez más frecuente. También puede ser una ventaja cuando/si puede usar otras formas como LOOPNZ, que pueden ser relativamente complejas de simular con instrucciones separadas.

5

Hay instrucciones en el conjunto de instrucciones que usan registros específicos, que son más pequeños (y con frecuencia más rápidos) que las funciones equivalentes que se dirigen a cualquier registro.

+2

Más notablemente referencias a AX frente a otros. –

Cuestiones relacionadas