Durante l'apprendimento dell'assembly x86-64, ho trovato la mia prima incompatibilità tra le implementazioni di Intel 64 e AMD64 di "x86-64": Why does syscall compile in NASM 32 bit output while popa does not compile in 64 bit?syscall
è valido nella modalità di compatibilità dell'uno ma non dell'altro.Qual è il sottoinsieme compatibile delle implementazioni x86-64 di Intel e AMD?
C'è un modo migliore per scoprire quelle incompatibilità oltre a leggere attentamente entrambi i manuali e confrontarli, che è soggetto a errori e duplica il mio sforzo di lettura manuale quando si mira alla portabilità?
Per esempio, sarebbe molto più facile se ci fosse uno:
- un sottoinsieme standard che sia Intel che pretesa AMD a seguire
- commenti sul manuale Intel sulla compatibilità di AMD in quanto AMD è stata quella inventare x86-64. Ma naturalmente, per Intel sarebbe difficile da mantenere, e i manuali Intel non contengono la parola AMD.
- alcune linee guida generali ufficiali o non ufficiali che garantiscono la compatibilità di alcune parti. Ad esempio, qualcosa di simile: la modalità di compatibilità potrebbe essere incompatibile, ma la modalità a 64 bit no.
- qualche lista ben tenuta di incompatibilità da parte di Intel, AMD o qualche terza parte
Come sempre , [Wikipedia] (http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64) è un buon punto di partenza! – RaGe
@RaGe hai ragione, e mi sento stupido :-) –