Una cosa su cui non mi capisco è come può il codice compilato per una CPU Intel funzionare su una CPU AMD.Perché le applicazioni off-the-shelf funzionano su processori Intel e AMD?
La mia comprensione di base è che se si compila il codice C, ad esempio, il compilatore trasforma il codice sorgente in linguaggio macchina che avrà istruzioni per un particolare processore. Quindi, devi compilare un compilatore per qualsiasi piattaforma tu voglia che la tua applicazione usi. Perché non hai bisogno di un compilatore per AMD rispetto a Intel e devi acquistare software per un particolare processore?
So che i processori AMD ei processori Intel condividono un po 'di compatibilità nelle precedenti istruzioni x86; quello che mi piacerebbe sapere è come lo fanno? Voglio dire, non è che AMD o Intel si chiamino l'un l'altro e si raccontino i loro segreti commerciali, quindi come possono creare set di istruzioni compatibili?
Tutta la compatibilità è ancora basata sul set di istruzioni 386, con una serie di istruzioni come "IF AMD CPU, fai questo ELSE SE INTEL lo fai"?
Quindi, insieme alla risposta di bdonlan, i set di istruzioni sono pubblicati pubblicamente da Intel o AMD, poi l'altro crea un chip che supporta lo stesso (o qualche estensione di esso) di quel set di istruzioni? Le differenze riguardano quindi l'implementazione hardware specifica di tali istruzioni. E 'giusto? – romandas
@romandas: Sì, la tua comprensione è corretta. I produttori di chip documentano il set di istruzioni, consentendo ad altri di copiarlo. – Zifre
Ti suggerisco di aggiungere questa informazione alla tua risposta, o di fare in modo che bdonlan aggiunga il tuo al loro, così posso accettare la risposta unificata come definitiva. – romandas