2015-12-23 1 views
3

J'ai lu que chaque processeur a son propre langage d'assemblage, est-ce que chaque processeur a son propre assemblage ou chaque architecture? Comment le système d'exploitation et les langages de programmation fonctionnent-ils sur différents assemblages?Le langage d'assemblage est-il différent d'une architecture à l'autre?

+0

Votre premier Q: c'est pire que ça, les différents assembleurs utilisent une syntaxe différente pour la même architecture. Votre deuxième Q: l'OS n'utilise pas d'assembleur, et un complicateur aurait son propre assembleur. –

Répondre

3

En gros, vous pouvez dire que chaque processeur a son propre jeu d'instructions. Le processus de l'assemblage de code est de traduire opcodes en binaire. C'est pourquoi vous avez plusieurs paquets de programmes/CD/DVD pour le même programme/système d'exploitation pour différentes plates-formes. C'est à dire. Le GCC-4.8 (GNU Compiler Collection) a plusieurs sorties binaires pour diverses architectures matérielles, bien que toutes font partie d'une version de système d'exploitation - à savoir Debian (SID) dans ce cas.

2

chaque architecture a son propre langage d'assemblage. et même dans les architectures, il peut y avoir des extensions qui ajoutent des commandes supplémentaires (comme les extensions SSE). Habituellement, un compilateur peut seulement créer du code pour une architecture, et il peut y avoir des indicateurs facultatifs qui permettent des optimisations pour les extensions. Lorsque ces indicateurs sont activés, le programme s'exécute généralement uniquement sur les processeurs qui prennent en charge ces extensions. Pour les programmes et le système d'exploitation, cela signifie généralement que vous ne devez utiliser que des options de compilateur prises en charge par tous les processeurs de l'architecture sur laquelle ils doivent fonctionner. Si ce n'est pas assez optimisé, vous devez fournir des exécutables/bibliothèques avec plusieurs chemins de code pour différentes optimisations, et choisir le bon à l'exécution.