Una cosa que no entiendo es cómo se puede compilar el código para que una CPU Intel funcione en una CPU AMD.¿Por qué las aplicaciones genéricas funcionan en procesadores Intel y AMD?
Mi comprensión básica es que si compila código C, por ejemplo, el compilador convierte el código fuente en lenguaje de máquina que tendrá instrucciones para un procesador en particular. Por lo tanto, debe compilar con un compilador para la plataforma que desee que use su aplicación. ¿Por qué no necesita un compilador para AMD versus Intel y tiene que comprar software para un procesador en particular?
Sé que los procesadores AMD y los procesadores Intel comparten cierta compatibilidad en las antiguas instrucciones x86; lo que me gustaría saber es cómo lo hacen? Quiero decir, no es que AMD o Intel se llamen entre sí y se digan sus secretos comerciales, entonces, ¿cómo pueden crear conjuntos de instrucciones que sean compatibles?
¿Toda la compatibilidad sigue basándose en el conjunto de instrucciones 386, con varias instrucciones como "SI AMD CPU, haz esto MÁS SI INTEL hace eso"?
Entonces, junto con la respuesta de bdonlan ... los conjuntos de instrucciones son publicados públicamente por Intel o AMD, y luego el otro crea un chip que admite el mismo (o alguna extensión del mismo) de ese conjunto de instrucciones. Las diferencias se encuentran dentro de la implementación de hardware específico de esas instrucciones. ¿Es eso correcto? – romandas
@romandas: Sí, su comprensión es correcta. Los fabricantes de chips documentan el conjunto de instrucciones, permitiendo que otros lo copien. – Zifre
Sugiero que agregue esa información a su respuesta, o que bdonlan agregue la suya a la de ellos, para que pueda aceptar la respuesta combinada como definitiva. – romandas