Maison  >  Article  >  Quels sont les composants du langage assembleur ?

Quels sont les composants du langage assembleur ?

WBOY
WBOYoriginal
2022-08-15 15:44:398030parcourir

La composition du langage assembleur : 1. Instructions de transfert, y compris les instructions générales de transfert de données, les instructions de transfert conditionnel, etc. ; 2. Opérations logiques, cette partie des instructions est utilisée pour effectuer des opérations arithmétiques et logiques ; pour transférer des registres ou L'opérande mémoire est déplacé un nombre spécifié de fois ; 4. Opérations sur les bits, y compris les instructions de test BT, les instructions de test et de définition des bits BTS, etc. 5. Transfert de contrôle, y compris les instructions de transfert inconditionnel JMP, les instructions de transfert conditionnel " ; JCC/JCXZ", etc. ; 6, opération de chaîne, utilisée pour opérer sur des chaînes de données ; 7. Entrée et sortie, utilisées pour échanger des données avec des périphériques.

Quels sont les composants du langage assembleur ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, ordinateur DELL G3.

Quels sont les composants du langage assembleur ?

En raison de l'énorme système d'instructions d'assemblage, il est nécessaire de construire un système d'instructions avec un grand nombre d'instructions, des formats complexes et une mauvaise mémorisation. La chose la plus difficile à propos de l'instruction est le mode d'adressage pris en charge par l'instruction. Son essence est de savoir comment obtenir les opérandes de l'instruction. Pour le processeur, il s'agit de savoir comment trouver les données dont il a besoin. Cependant, pour le langage assembleur sous-jacent de l'ordinateur, cette méthode d'adressage impliquera un grand nombre de formats de stockage de calcul et est étroitement liée à des méthodes complexes de gestion du stockage, ce qui la rend difficile à comprendre. Enfin, les instructions d'assemblage sont également liées à la manière d'affecter les bits d'indicateur, mais les bits d'indicateur du processeur sont très complexes, il est donc difficile de maîtriser leurs mécanismes.

  • Instructions de transfert

incluent les instructions générales de transfert de données MOV, les instructions de transfert conditionnel CMOVcc, les instructions d'opération de pile PUSH/PUSHA/PUSHAD/POP/POPA/POPAD, les instructions d'échange XCHG/XLAT/BSWAP, l'adresse Ou instructions de sous-transfert de sélection de descripteur de segment LEA/LDS/LES/LFS/LGS/LSS, etc.

  • Opérations logiques

Cette partie des instructions est utilisée pour effectuer des opérations arithmétiques et logiques, y compris les instructions d'addition ADD/ADC, les instructions de soustraction SUB/SBB, plus une instruction INC, la soustraction une instruction DEC , opérations de comparaison Instructions CMP, instructions de multiplication MUL/IMUL, instructions de division DIV/IDIV, instructions d'extension de signe CBW/CWDE/CDQE, instructions d'ajustement décimal DAA/DAS/AAA/AAS, instructions d'opération logique NOT/AND/OR/XOR/TEST , etc.

  • Instructions de décalage

Cette partie de l'instruction est utilisée pour déplacer le registre ou l'opérande mémoire un nombre de fois spécifié. Y compris l'instruction de décalage logique à gauche SHL, l'instruction de décalage logique à droite SHR, l'instruction de décalage arithmétique à gauche SAL, l'instruction de décalage arithmétique à droite SAR, l'instruction de décalage circulaire à gauche ROL, l'instruction de décalage circulaire à droite ROR, etc.

  • Opération de bit

Cette partie des instructions comprend l'instruction de test de bit BT, l'instruction de test de bit et de réglage BTS, l'instruction de test de bit et de réinitialisation BTR, l'instruction de test de bit et d'annulation BTC et l'analyse avant de bit Instruction BSF, instruction de balayage arrière des bits BSR, etc.

  • Transfert de contrôle

Cette partie comprend les instructions de transfert inconditionnel JMP, les instructions de transfert conditionnel JCC/JCXZ, les instructions de boucle LOOP/LOOPE/LOOPNE, les instructions d'appel de procédure CALL, les instructions de retour de sous-processus RET et instructions d'interruption INTn, INT3, INTO, IRET, etc.

  • Opération de chaîne

Cette partie des instructions est utilisée pour faire fonctionner la chaîne de données, y compris l'instruction de transfert de chaîne MOVS, l'instruction de comparaison de chaîne CMPS, l'instruction d'analyse de chaîne SCANS, l'instruction de chargement de chaîne LODS, la sauvegarde de chaîne instruction STOS, ces instructions peuvent éventuellement être exploitées séquentiellement à l'aide des préfixes REP/REPE/REPZ/REPNE et REPNZ.

  • Entrée et sortie

Cette partie des instructions est utilisée pour échanger des données avec des périphériques, y compris les instructions d'entrée de port IN/INS et les instructions de sortie de port OUT/OUTS.

Caractéristiques du langage assembleur

Le langage assembleur est le langage le plus rapide et le plus efficace que les ordinateurs fournissent aux utilisateurs. C'est également le seul langage capable d'utiliser toutes les fonctionnalités matérielles de l'ordinateur et de contrôler directement le matériel. Cependant, comme l’écriture et le débogage de programmes en langage assembleur sont plus compliqués que les langages de haut niveau, son application n’est actuellement pas aussi répandue que les langages de haut niveau. Le langage assembleur est plus lisible que le langage machine, mais comparé aux langages de haut niveau, sa lisibilité est encore médiocre. Cependant, les programmes écrits à l'aide de celui-ci présentent les caractéristiques d'une faible utilisation de l'espace de stockage et d'une vitesse d'exécution rapide, qui ne peuvent pas être remplacées par des langages de haut niveau. Dans les applications réelles, l'utilisation ou non du langage assembleur dépend des exigences spécifiques de l'application, du temps de développement et de la qualité.

Avantages

En tant que langage de programmation de deuxième génération supérieur au langage machine, le langage assembleur présente également de nombreux avantages :

Il peut facilement lire l'état de la mémoire et l'état de l'interface d'E/S matérielle

Parce qu'il y a moins de code à écrire De nombreuses étapes de compilation peuvent être exécutées avec précision

En tant que langage de bas niveau, il est hautement évolutif

Inconvénients

Parce que le code est très monotone et qu'il y a peu de caractères d'instruction spéciaux, cela rend le code long et difficile à écrire.

Parce que l'assemblage doit encore appeler la mémoire pour stocker les données, il est facile qu'un BUG apparaisse, et cela. n'est pas facile à déboguer.

Même s'il est terminé. Si vous créez un programme, il faudra également beaucoup de temps pour le maintenir plus tard.

En raison de la particularité de la machine, la compatibilité des codes est mauvaise.

Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Quel logiciel est interne ?Article suivant:Quel logiciel est interne ?