2009-08-10 4 views

Répondre

35

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.

+0

grâce SharpTooth, je pense que je l'ai – freenight

5

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.

14

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. 
0

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).

8

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?

1
langage machine

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

-2

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.

+0

On ne sait pas ce que cette réponse est destinée à transmettre. –

-1

machine Langue:

  1. Il est la première génération langage de programmation
  2. Il est beaucoup plus difficile que l'Assemblée Langue
  3. Difficile à comprendre par le
  4. humain
  5. Il est sous forme de 0s et 1s
  6. Machine Le langage varie de la plateforme
  7. c Annot être changé facilement
  8. Il ne supporte pas la modification
  9. Le risque de l'existence d'erreur est élevée
  10. Le code binaire ne peut pas être mémorisé
  11. Pas besoin de compilateur

Langue Assemblée:

  1. C'est un langage de programmation de deuxième génération
  2. Il est moins difficile que langage machine
  3. Facile à comprendre par l'être humain
  4. Il utilise des instructions symboliques, des noms descriptifs pour les éléments de données et l'emplacement de mémoire
  5. La langue Assemblée est dépendant de la plateforme
  6. Il est facilement modifiable
  7. soutien de Il change
  8. Le risque d'apparition d'erreur est réduite
  9. Memorability est élevé
  10. Il est nécessaire compilateur et sait comme assembleur
Questions connexes