Programmes de langage d'assemblage 8086 simples avec explication

Essayez Notre Instrument Pour Éliminer Les Problèmes





La programmation au niveau de l'assemblage est très importante pour le bas niveau système embarqué design est utilisé pour accéder aux instructions du processeur pour manipuler le matériel. C'est un langage de niveau machine le plus primitif qui est utilisé pour créer un code efficace qui consomme moins de cycles d'horloge et prend moins de mémoire par rapport au langage de programmation de haut niveau . C'est un langage de programmation complet orienté matériel pour écrire un programme dont le programmeur doit être conscient du matériel embarqué. Ici, nous fournissons les bases de la programmation au niveau de l'assemblage 8086.

Programmation au niveau de l

Programmation au niveau de l'assemblage 8086



Programmation au niveau de l'assemblage 8086

Le langage de programmation d'assemblage est un langage de bas niveau développé à l'aide de mnémoniques. Le microcontrôleur ou le microprocesseur ne peut comprendre que le langage binaire comme les 0 ou les 1, par conséquent l'assembleur convertit le langage d'assemblage en langage binaire et le stocke dans la mémoire pour effectuer les tâches. Avant d'écrire le programme, les concepteurs embarqués doivent avoir des connaissances suffisantes sur le matériel particulier du contrôleur ou du processeur, nous devions donc d'abord connaître le matériel du processeur 8086.


Matériel du processeur

Matériel du processeur



Architecture du processeur 8086

Le 8086 est un processeur qui est représenté pour tous les périphériques tels que le bus série, la RAM et la ROM, les périphériques d'E / S, etc., qui sont tous connectés en externe au CPU à l'aide d'un bus système. Le microprocesseur 8086 a Architecture basée sur le CISC , et il a des périphériques comme 32 E / S, Communication série , souvenirs et compteurs / minuteries . Le microprocesseur nécessite un programme pour effectuer les opérations qui nécessitent une mémoire pour lire et enregistrer les fonctions.

Architecture du processeur 8086

Architecture du processeur 8086

La programmation au niveau de l'assemblage 8086 est basée sur les registres de mémoire. Un registre est la partie principale du microprocesseurs et contrôleurs qui sont situés dans la mémoire qui fournit un moyen plus rapide de collecter et de stocker les données. Si nous voulons manipuler des données vers un processeur ou un contrôleur en effectuant une multiplication, une addition, etc., nous ne pouvons pas le faire directement dans la mémoire où il faut des registres pour traiter et stocker les données. Le microprocesseur 8086 contient différents types de registres qui peuvent être classés selon leurs instructions telles que

Registres à usage général : Le processeur 8086 est composé de 8 registres à usage général et chaque registre a son propre nom comme indiqué sur la figure, par exemple AX, BX, CX, DX, SI, DI, BP, SP. Ce sont tous des registres 16 bits où quatre registres sont divisés en deux parties telles que AX, BX, CX et DX qui sont principalement utilisés pour conserver les nombres.

Registres à usage spécial : La CPU 8086 est composée de 2 registres de fonctions spéciales tels que les registres IP et de drapeau. Le registre IP pointe vers l'instruction en cours d'exécution et travaille toujours pour se rassembler avec le registre de segment CS. La fonction principale des registres de drapeau est de modifier les opérations du processeur une fois les fonctions mécaniques terminées et nous ne pouvons pas accéder directement
Registres de segment: Le processeur 8086 est composé de registres à 4 segments tels que CS, DS, ES, SS qui sont principalement utilisés pour stocker des données dans les registres de segment et nous pouvons accéder à un bloc de mémoire à l'aide de registres de segment.


Programmes de langage d'assemblage simple 8086

La programmation en langage assembleur 8086 a quelques règles telles que

  • Le niveau d'assemblage programmation 8086 le code doit être écrit en majuscules
  • Les étiquettes doivent être suivies de deux points, par exemple: étiquette:
  • Toutes les étiquettes et symboles doivent commencer par une lettre
  • Tous les commentaires sont écrits en minuscules
  • La dernière ligne du programme doit se terminer par la directive END

Les processeurs 8086 ont deux autres instructions pour accéder aux données, telles que WORD PTR - pour mot (deux octets), BYTE PTR - pour octet.

Op-Code et Opérande

Op-Code et Opérande

Code opération: Une seule instruction est appelée comme un code opération qui peut être exécuté par la CPU. Ici, l’instruction «MOV» est appelée comme un code d’opération.

Opérandes: Les données d'une seule pièce sont appelées opérandes qui peuvent être exploités par le code opération. Exemple, l'opération de soustraction est effectuée par les opérandes qui sont soustraits par l'opérande.
Syntaxe: SUB b, c

8086 programmes de langage d'assemblage de microprocesseurs

Ecrire un programme pour lire un caractère depuis le clavier

MOV ah, 1h // sous-programme d'entrée au clavier
INT 21h // saisie de caractères
// le caractère est stocké dans al
MOV c, al // copie le caractère de alto c

Ecrire un programme pour lire et afficher un caractère

MOV ah, 1h // sous-programme d'entrée au clavier
INT 21h // lire le caractère dans al
MOV dl, al // copier le caractère en dl
MOV ah, 2h // sous-programme de sortie de caractères
INT 21h // affiche le caractère en dl

Écrire un programme à l'aide de registres à usage général

ORG 100h
MOV AL, VAR1 // vérifier la valeur de VAR1 en la déplaçant vers AL.
LEA BX, VAR1 // obtenir l'adresse de VAR1 dans BX.
MOV BYTE PTR [BX], 44h // modifier le contenu de VAR1.
MOV AL, VAR1 // vérifier la valeur de VAR1 en la déplaçant vers AL.
DROIT
VAR1 DB 22h
FINIR

Ecrire un programme pour afficher la chaîne à l'aide des fonctions de bibliothèque

include emu8086.inc // Déclaration de macro
ORG 100h
IMPRIMER «Hello World!»
GOTOXY 10, 5
PUTC 65 // 65 - est un code ASCII pour «A»
PUTC «B»
RET // retourne au système d'exploitation.
END // directive pour arrêter le compilateur.

Instructions arithmétiques et logiques

Les processus 8086 de l'unité arithmétique et logique se sont séparés en trois groupes tels que les opérations d'addition, de division et d'incrémentation. Les plus Instructions arithmétiques et logiques affectent le registre d'état du processeur.

Les mnémoniques de programmation en langage assembleur 8086 sont sous la forme de code opération, tel que MOV, MUL, JMP, etc., qui sont utilisés pour effectuer les opérations. Programmation en langage d'assemblage 8086 exemples

Une addition
ORG0000h
MOV DX, # 07H // déplace la valeur 7 vers le registre AX //
MOV AX, # 09H // déplace la valeur 9 vers l'accumulateur AX //
Ajouter AX, 00H // ajouter la valeur CX avec la valeur R0 et stocker le résultat dans AX //
FINIR
Multiplication
ORG0000h
MOV DX, # 04H // déplace la valeur 4 vers le registre DX //
MOV AX, # 08H // déplace la valeur 8 vers l'accumulateur AX //
MUL AX, 06H // Le résultat multiplié est stocké dans l'accumulateur AX //
FINIR
Soustraction
ORG 0000h
MOV DX, # 02H // déplace la valeur 2 vers le registre DX //
MOV AX, # 08H // déplace la valeur 8 vers l'accumulateur AX //
SUBB AX, 09H // La valeur du résultat est stockée dans l'accumulateur A X //
FINIR
Division
ORG 0000h
MOV DX, # 08H // déplace la valeur 3 vers le registre DX //
MOV AX, # 19H // déplace la valeur 5 vers l'accumulateur AX //
DIV AX, 08H // la valeur finale est stockée dans l'accumulateur AX //
FINIR

Par conséquent, il s'agit de programmes d'exemple simples d'architecture de processeur 8086, 8086 pour les processeurs 8086, d'instructions arithmétiques et logiques.De plus, toute question concernant cet article ou des projets électroniques, vous pouvez nous contacter en commentant dans la section des commentaires ci-dessous.