Programmation ASM

Résolu/Fermé
Sauval Danny
Messages postés
43
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
21 décembre 2012
- 10 nov. 2012 à 11:48
Sauval Danny
Messages postés
43
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
21 décembre 2012
- 10 nov. 2012 à 12:24
Bonjour à tous,

J'ai une question qui me trotte dans l'esprit depuis quelque temps.

Selon les processeurs, les instructions du langage ASM ne sont pas les mêmes. Par exemple, un programme écrit en ASM Intel ne fonctionnera pas sur un processeur AMD, le jeu d'instructions étant différent.

(si je dis des bêtises n'hésitez pas à me corriger!).

J'ai lu que les OS sont généralement programmé en ASM et en C. Ma question est la suivante : Comment Windows fait-il pour rendre Windows compatible avec les deux processeur?

De plus lorsque j'écris un programme en C et que je le compile, je n'ai qu'un seul exécutable qui est portable, c'est à dire qu'il fonctionne quelque soit le processeur. Donc, je suppose que le compilateur ne s'occupe pas de l'ASM Intel et non plus de l'ASM AMD. Le compilateur utilise-t-il un autre langage ASM, compatible entre tous les processeurs? J'en doute mais justement je ne comprends pas.

Merci d'avance pour votre aide.

1 réponse

nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
140
Modifié par nicocorico le 10/11/2012 à 12:10
Hé bien la réponse est simple et clarifie tout d'un seul coup, le jeu d'instruction de ces processeurs est 100% compatible, ainsi que leur comportement, voilà!

Le chêne aussi était un gland, avant d'être un chêne
1
Sauval Danny
Messages postés
43
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
21 décembre 2012
6
10 nov. 2012 à 12:13
Merci de ta réponse.

Tu veux dire que l'ASM intel est compatible AMD? Et inversement?
0
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
140
Modifié par nicocorico le 10/11/2012 à 12:17
Absolument! Non seulement l'asm est strictement identique mais aussi ces processeurs réagissent exactement de la même manière, donc les programmes sont compatibles à 100%.
Seuls certains jeu d'instructions récemment ajoutés peuvent faire défault sur l'un ou l'autre, mais ils sont ensuite intégrés dans les nouvelles gammes etc...ainsi les processeurs actuels d'intel et d'amd intègrent les instructions complémentaires du concurrent, comme le mmx, sse, 3dnow etc...
0
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
140
10 nov. 2012 à 12:19
Autrement dit, si tu programme en assembleur ou en c sur l'un d'entre eux, le programme tournera sur le concurrent, dans la mesure où tu n'utilises pas des instructions spécifiques manquantes...
0
Sauval Danny
Messages postés
43
Date d'inscription
mercredi 7 novembre 2012
Statut
Membre
Dernière intervention
21 décembre 2012
6
10 nov. 2012 à 12:24
Merci beaucoup pour ta réponse. Ça explique et simplifie beaucoup de choses.

Je ne me rappelle plus où j'ai lu l'ânerie que je pensais mais en tout cas ça m'a embrouillé.

C'est donc à peu près pareil que pour la compatibilité Linux/Windows. Le programme peut être compilé sur les deux le temps que l'on n'utilise pas les instructions spécifiques.

Merci beaucoup pour tes réponses. Je passe en résolu.
0