Beim Lernen x86-64 Assembly stieß ich auf meine erste Inkompatibilität zwischen Intel 64 und AMD64-Implementierungen von "x86-64": Why does syscall compile in NASM 32 bit output while popa does not compile in 64 bit?syscall
ist im Kompatibilitätsmodus der einen, nicht aber der anderen gültig.Was ist die kompatible Teilmenge der x86-64-Implementierungen von Intel und AMD?
Gibt es eine bessere Möglichkeit, diese Inkompatibilitäten zu finden, außer beide Handbücher sorgfältig zu lesen und sie zu vergleichen, was fehleranfällig ist und meinen manuellen Leseaufwand verdoppelt, wenn ich nach Portabilität strebe?
Zum Beispiel wäre es viel einfacher, wenn es entweder:
- eine Standard-Untergruppe, die sowohl Intel und AMD Anspruch
- Kommentaren auf dem Intel-Handbuch über AMD Kompatibilität zu folgen, da AMD derjenige war erfinden x86-64. Aber das wäre für Intel natürlich schwierig, und die Intel-Handbücher enthalten das Wort AMD nicht.
- einige allgemeine offizielle oder nicht offizielle Richtlinien, die die Kompatibilität bestimmter Teile gewährleisten. Zum Beispiel, etwas wie: Kompatibilitätsmodus möglicherweise nicht kompatibel, aber 64-Bit-Modus nicht.
- einig gepflegte Liste von Inkompatibilitäten von Intel, AMD oder einem Dritten
Wie ausgeführt wird, , [Wikipedia] (http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64) ist ein guter Anfang! – RaGe
@RaGe Sie haben Recht, und ich fühle mich albern :-) –