Le langage C a été utilisé pour écrire UNIX afin d'atteindre la portabilité - le même programme de langage C compilé en utilisant différents compilateurs produit différentes instructions machine. Comment Windows OS peut-il fonctionner sur les processeurs Intel et AMD?Est-ce que les processeurs Intel et AMD ont le même assembleur?
Répondre
Comme vous le supposez, les processeurs Intel et AMD de flux principal ont le même jeu d'instructions.
Windows ne s'exécute pas sur les puces ARM ou PowerPC, par exemple, car il dépend un peu du jeu d'instructions sous-jacent. Cependant, la plupart de Windows est écrit en C++ (pour autant que je sache), qui devrait être portable vers d'autres architectures. Windows NT even ran on PowerPC and other architectures.
Et regardez le noyau Linux pour un système d'exploitation qui fonctionne sur de nombreuses architectures, même avec des jeux d'instructions différents. Alors que le code C est portable, beaucoup d'assembleur doit être changé pour chaque cible. –
La XBox 360 utilise un noyau Windows 2000 modifié, s'exécutant sur une architecture PPC. Je suis sûr que Windows est probablement aussi portable que d'autres systèmes d'exploitation, il n'y a pas de forte motivation pour Microsoft de fournir d'autres versions au public (pour, comme, deux clients, ou plus). – Joey
Cette réponse est généralement vraie, sauf dans le cas des jeux d'instructions SIMD. Les choses commencent à diverger quand vous mélangez 3DNow !, SSE1/2/3, etc., mais c'est aussi pourquoi les compilateurs x86 ne supportent généralement pas ces jeux d'instructions. – hythlodayr
AMD sont compatibles avec Intel, sinon ils n'auraient jamais pris pied sur le marché.
Ils sont effectivement compatibles avec les clones.
Ryan
AMD et Intel utilisent le même jeu d'instructions. Lorsque vous installez Windows sur un processeur AMD ou un processeur Intel, il ne "compile" pas de code sur la machine.
Je me souviens que beaucoup de gens étaient confus à ce sujet pendant le collège. Ils croient qu'une «installation» signifie qu'il compile du code sur votre machine. Ce n'est pas. La plupart sinon toutes les applications Windows en dehors des royaumes libres, vous sont données par binaire. En ce qui concerne la portabilité, cela n'est pas nécessairement vrai à 100%. Tandis que C est hautement portable, dans de nombreux cas l'écriture pour un système d'exploitation ou un système spécifique aura pour résultat que le code ne pourra être compilé/exécuté que sur cette boîte. Par exemple, certaines machines Unix gèrent différemment les fichiers et les répertoires afin de ne pas être 100% portables.
Les processeurs AMD et Intel (*) ont en commun un grand nombre d'instructions, de sorte qu'il est possible pour un compilateur ou un assembleur d'écrire du code binaire qui s'exécute "pareil" sur les deux. Cependant, différentes familles de processeurs, même celles d'un fabricant, possèdent leurs propres instructions, généralement appelées «extensions» ou autres. En ignorant le coprocesseur x87, la première fois que je me souviens que c'était un point de marketing, c'était quand tout allait soudainement "avec la technologie MMX (TM)". Le code binaire attendu pour être exécuté sur n'importe quel processeur doit soit éviter les extensions, soit détecter le type de CPU avant de les utiliser. L'architecture Itanium 64 bits d'Intel était complètement différente de l'architecture x86-64 d'AMD, donc pendant un certain temps, leurs offres 64 bits étaient non compatibles (et Itanium n'avait rien à voir avec x86, alors que x86-64 étendait l'ensemble d'instructions en ajoutant 64bit instructions). Intel a clignoté d'abord et a adopté x86-64, bien qu'il existe encore quelques différences: http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64
Windows utilise probablement le jeu d'instructions commun x86 ou x86-64 pour presque tout le code. Je ne serais pas surpris si plusieurs pilotes et codecs sont livrés en plusieurs versions, et la bonne sélectionnée une fois que le processeur a été interrogé. (*) En fait, Intel fabrique ou a fabriqué différents types de processeurs, y compris ARM (les processeurs ARM d'Intel s'appelaient XScale, mais je pense qu'ils ont vendu cette activité). Et AMD fait aussi d'autres processeurs.Mais nous savons quels processeurs Intel/AMD vous voulez dire :-)
+1. En interne, AMD et Intel gèrent généralement ces instructions communes différemment: certaines instructions peuvent s'exécuter beaucoup plus lentement sur une architecture que sur l'autre. –
Oui, bon point. "Exécute la même chose" vient avec des petits caractères. –
Exactement exact et tel est le cas avec Linux. Je suis un hacker noyau Linux et si vous avez déjà recompilé votre propre noyau Linux, vous remarquerez que vous pouvez cibler une pléthore de types de CPU et, bien sûr, choisir le mauvais type et l'installer dans un core dump ou accroché système. Nice écrire par onebyone sur celui-ci !!! – Eric
Les processeurs Intel et AMD ont-ils le même assembleur? Un assembleur assemble un programme à exécuter sur un processeur. Votre question est donc erronée. Les processeurs n'utilisent PAS d'assembleurs.
Si vous voulez dire que le processeur Intel et AMD peuvent utiliser le même assembleur? Alors la réponse est OUI !!!
Tous les assembleurs sont, est un programme qui assemble d'autres programmes à partir de fichiers texte structurés. Visual Basic est un exemple d'assembleur.
- 1. Installation de Curl IDE/RTE sur les processeurs AMD
- 2. Où puis-je obtenir une liste des tailles de lignes de cache et des tailles de cache pour les processeurs AMD et Intel
- 3. Convert Inline C Assembleur (Intel syntaxe AT & T)
- 4. API pour accéder à Intel TXT (mode d'exécution sécurisé) ou AMD SVM?
- 5. Processeurs d'assemblage et multicœurs
- 6. voir si deux fichiers ont le même contenu en python
- 7. Comment vérifier si les permutations ont la même parité?
- 8. Comment déterminer l'ordre des contrôles qui ont le même DockStyle?
- 9. Images pour assembleur, interpréteur et compilateur?
- 10. Est-ce que ma machine AMD utilise peu endian ou big endian?
- 11. parallèle Linq - Utiliser plus de threads que les processeurs (pour les tâches liées non CPU)
- 12. Comment obtenir les lignes précédentes et suivantes même si certaines lignes ont été supprimées?
- 13. Est-ce qu'un Intel i7 (4 cœurs, 8 cœurs logiques HT) est meilleur qu'un Intel Core 2 Quad pour le développement de VisualC++?
- 14. paperclip exécuter processeurs sur le style sélectionné
- 15. PBS (couple) ne considère pas les processeurs quad core comme 4 processeurs
- 16. Est-ce que deux URL ont des doublons et que leurs représentations sont traitées comme permutables?
- 17. faire certaines langues ont des architectures de processeurs intrinsèques par la conception
- 18. Développement de noyaux pour supporter plusieurs processeurs
- 19. Comment puis-je accéder au compteur Intel CPU
- 20. Le compilateur Intel Fortran "-parallel" ne fonctionne pas
- 21. Quand est-il approprié d'utiliser les processeurs de contexte Django?
- 22. Comment faire deux éléments dans gtk ont la même taille?
- 23. understaning code assembleur dans windbg
- 24. Borland C++ 6 avec de nouveaux processeurs multi-cœurs?
- 25. Comment les processeurs implémentent-ils des instructions comme MUL/MULT?
- 26. x86 assembleur en ligne drapeau
- 27. Les méthodes xx et yy utilisent le même SOAPAction
- 28. comment ne sélectionner que les liens qui ont du texte et pas de liens d'image
- 29. Obtenir tous les IP dans le même réseau que mon ordinateur
- 30. Optimisation pour ARM: Pourquoi différents processeurs affecte différents algorithmes différemment (et radicalement)
S'il vous plaît vous questionnez – Key
ne clarifiez Quelqu'un se souvient :) série K5 d'AMD –
Maintenant que AMD travaille sur ARM64, cette question est ambiguë :-) – Jeff