Le langage d'assemblage et le langage machine (pour le même système sous-jacent) sont-ils vraiment les mêmes? Y a-t-il des différences entre ces deux concepts?Quelle est la relation entre le langage d'assemblage et le langage machine?
Répondre
Le langage d'assemblage est un mécanisme pratique par rapport au langage machine. Avec le langage d'assemblage, vous utilisez des séquences mnémoniques au lieu des codes d'opérations numériques et vous pouvez utiliser des étiquettes symboliques au lieu de calculer manuellement les décalages. Il vous protège également contre les erreurs vraiment stupides - comme taper une instruction de processeur mal formé.
Sinon, le langage assemly est l'équivalent du langage machine. Parfois, vous aurez un ancien assembleur qui ne supportera pas les mnémoniques pour certaines instructions des processeurs plus récents - alors vous pouvez toujours insérer des codes d'opération directement dans le programme.
Dans Assembly, les instructions sont des représentations plus faciles à comprendre des instructions de la CPU.
Mais l'assembleur fait aussi, par exemple, d'adressage plus facile:
- En langage machine vous devez connaître la distance (dans l'espace d'adressage) entre l'endroit où vous êtes et où vous voulez passer à
- dans le langage de l'Assemblée que vous appelez une adresse « iWantToJumpHere » et vous pouvez dire « sauter iWantToJumpHere »
Cela rend le montage beaucoup plus facile à maintenir, en particulier lorsque la distance entre les adresses des changements.
Le langage machine est le «codage binaire» des opcodes d'une CPU.
Assembly langauge est le "codage symbolique" des opcodes d'une CPU.
Ainsi, par exemple Symboliquement:
loop: dec R1 # Decrement register R1
bnq loop # Branch if not equal to zero to
# address "loop"
Devient Bit encodage:
# Mythical CPU Machine code 4 bits operation,
# 4 bit "option"
0x41 # 4 is a "dec" and represents r1;
0x7E # 7 is bnq and E means PC -2;
En général, il est une relation biunivoque, mais certaines langues d'assemblage aura ocationally des instructions de montage supplémentaires qui tracent soit multiple instructions de code machine ou réutiliser un autre code opération. Comme en utilisant le code machine "xor R1, R1" comme un "clr R1" ou quelque chose de très similaire. En outre, les langages d'assemblage auront tendance à prendre en charge la «macro-programmation» qui, dans les années 80, lorsque l'assemblage était largement utilisé, donnait au code source une apparence plus «de haut niveau». J'ai personnellement écrit des macros d'assemblage qui ressemblaient à "plot x, y" et "Hex Val" pour simplifier les opérations courantes.
Par exemple:
# Mythically CPU Macro
.macro spinSleep x,y
ld #x,y
localLoop: dec y
brq localLoop
.endmacro
# Macro invocation
spinSleep 100,R1
# Macro expantion
ld #100,R1
localLoopM: dec R1
brq localLoopM # localLoopM is "Mangled" for localization.
Assemblez niveau de langue est le premier pas à faire de la conscience de programmation simple en permettant aux programmeurs d'écrire mnémoniques au lieu de code binaire (code machine).
J'ai trouvé une explication vraiment bon, pensé pour poster ici, de sorte que d'autres puissent le lire:
Le langage machine est les bits réels utilisés pour contrôler le processeur dans l'ordinateur , généralement considéré comme une séquence de nombres hexadécimaux (typiquement octets). Le processeur lit ces bits dans la mémoire de programme, et les bits représentent des "instructions" quant à ce que doit faire ensuite . Ainsi, le langage machine permet d'entrer des instructions dans un ordinateur (que ce soit via des commutateurs, une bande perforée ou un fichier binaire ).
La langue de l'assemblage est une vue plus humaine du langage machine . Au lieu de représenter la machine en tant que numéros, les instructions et les registres portent les noms (typiquement des mots abrégés, ou mnémoniques, par exemple ld signifie «charger»). Contrairement à un langage de haut niveau, assembleur est très proche de la langue de la machine. Les abstractions principales (à l'exception des mnémoniques ) sont l'utilisation des étiquettes au lieu des adresses de mémoire fixe, et commentaires.
Un programme en langage assembleur (c'est-à-dire un fichier texte ) est traduit en langage machine par un assembleur. Un désassembleur exécute la fonction inverse (bien que les commentaires et les noms des étiquettes auront été mis au rebut dans le processus assembleur).
Source: What is difference between machine language and assembly language?
est ce que la puce comprend l'Assemblée est ce que vous comprenez
Chaque commande d'assemblage a un langage machine équivalente
43 00 00 00 = inc EBX
41 00 00 00 = inc eax
3B CA 00 00 = cmp ECX, EDX
C3 00 00 00 = ret
et ainsi de suite
Assemblée La langue est l'encodage symbolique de opcode (code d'opération) qui comprend les humains et utiliser uniquement pour instruire un processeur d'ordinateur (opération matérielle) et un robot (opération robotique) pour effectuer des tâches spécifiques. C'est un langage compréhensible pour l'humain. Cette langue est seulement utilisée pour instruire le fonctionnement du matériel et certainement pas utiliser pour créer un programme logiciel. Un assembleur est utilisé pour convertir cette partie codage symbolique de l'opcode (code d'opération) en langage machine. Le code d'opération (Opcode) fait partie du langage machine.
On ne sait pas ce que cette réponse est destinée à transmettre. –
machine Langue:
- Il est la première génération langage de programmation
- Il est beaucoup plus difficile que l'Assemblée Langue
- Difficile à comprendre par le humain
- Il est sous forme de 0s et 1s
- Machine Le langage varie de la plateforme
- c Annot être changé facilement
- Il ne supporte pas la modification
- Le risque de l'existence d'erreur est élevée
- Le code binaire ne peut pas être mémorisé
- Pas besoin de compilateur
Langue Assemblée:
- C'est un langage de programmation de deuxième génération
- Il est moins difficile que langage machine
- Facile à comprendre par l'être humain
- Il utilise des instructions symboliques, des noms descriptifs pour les éléments de données et l'emplacement de mémoire
- La langue Assemblée est dépendant de la plateforme
- Il est facilement modifiable
- soutien de Il change
- Le risque d'apparition d'erreur est réduite
- Memorability est élevé
- Il est nécessaire compilateur et sait comme assembleur
- 1. Différence entre une instruction analysée par bytecode et le langage machine?
- 2. Apprendre le langage C++
- 3. D'où vient le langage Databasic?
- 4. Quelle est la relation entre CRITICAL_SECTION et CCriticalSection?
- 5. Rendre le langage XSLT indépendant
- 6. Quel est le meilleur langage pour la reconnaissance d'empreinte?
- 7. Changer le langage de programmation
- 8. Quelle est la relation entre les réseaux bayésien et neuronal?
- 9. Toute personne utilisant le langage Microsoft ASML?
- 10. Quelle est la meilleure ressource pour apprendre le langage d'assemblage pour les microcontrôleurs PIC
- 11. Quelle est la relation entre Microsoft Enterprise Application Blocks et le modèle de fournisseur ASP.NET?
- 12. Balises Struts et langage d'expression
- 13. Utilisation de COM dans le langage R
- 14. Conception et implémentation d'un langage de programmation, quelle est la prochaine étape?
- 15. Quel est ce langage de programmation?
- 16. Quelle est la différence entre le format OMF et COFF?
- 17. Bon langage pour Spider et Indexer
- 18. Taille de la table utilisant le langage de requête JPA
- 19. Quelle est la relation entre les paramètres IIS HTTP Keep-Alives Enabled et Connection Timeout?
- 20. Pourquoi le langage C++ n'est-il pas proposé en langage code-behind pour asp.net?
- 21. Quel est le meilleur langage de programmation pour le développement de téléphones mobiles impliquant SMS?
- 22. Meilleur langage de programmation pour le traitement d'images médicales
- 23. Quel est le langage de programmation le plus courant/le plus dense actuellement disponible?
- 24. Quelle est la relation entre la qualité et la convivialité du logiciel?
- 25. Apprendre un langage Web
- 26. Quelle est la complexité générale de la construction d'une représentation de langage canonique?
- 27. quelle est la différence entre une syntaxe et des s-expressions
- 28. Analyser un langage simple pour le formatage de titre
- 29. Quelle est la relation entre MCPS (million de cycles par seconde) et la puissance consommée
- 30. Portée ambiguïté en langage naturel
grâce SharpTooth, je pense que je l'ai – freenight