Vous êtes sur la page 1sur 6

MARCH 2, 2021

COMPTE RENDU N1
PROGRAMMES BASIQUES

19083: SALKA AHMEDOU SID’AHMED TALEB


Contents
Introduction:............................................................................................................................................ 1
Travail 01 : ............................................................................................................................................... 1
Travail 02 : ............................................................................................................................................... 2
Travail 03 : ............................................................................................................................................... 3

Introduction:
L’objectif de notre 1er TP de l’élément module microcontrôleur et
microprocesseur :
- Se familiariser avec les logiciels d’environnement de développement en
Assembleur.
- Savoir écrire des programmes qui peuvent lire et sortir des données sur des
ports d’entrées/sorite.
- Savoir écrire des programmes qui peuvent faire des différentes opérations
arithmétiques et logiques.
On a manipulé pour la 1er fois logiciel Emu8086, qui est environnement de
développement en Assembleur et de simulation de fonctionnement du
microprocesseur 8086.

Travail 01 :
Le 1er travail demande d’écrire un programme qui permet de sortir
successivement des données de 0000 H jusqu’à 00FF H vers un port d’E/S dont
l’adresse est 0CA H.
J’ai utilisé un affichage LED et j’ai affiche l’information avec attente voici le
code commente :
org 100h ;pour commencer a partir de l’adresse mémoire 100h

#start=led_display.exe# ;executable pour l’affichage led

#make_bin#

name "led"

mov ax, 0000H ; metre dans AX 0

mov cx,00ffH ; metre dans AX 00ffh

mov bx,0200H ;metre dans BX 0200h

x1: ; nom du procedure

call affichage ;appel du procedure affichage

inc ax ; incrémentation de contenue de AX

dec cx ; décrémentation de contenue de CX

cmp cx,0000H ;comparaison de valeur de CX et 0

jnz x1 ; si cx contient un valeur different de 0 sauter vers x1

ret

affichage:

out 199, ax ; affiche de valeur qui est dans ax

dec bx ; décrémentation de contenue de BX

cmp bx,0000H ;comparaison de valeur de BX et 0

jnz affichage ; si bx contient un valeur ≠ 0 sauter vers affichage

mov bx,0200H ;metre dans BX 0200h

ret

Travail 02 :
Il est demandé de faire la somme de deux vecteurs j’ai affiché le résultat avec
les led voici mon code commenter
org 100h ;pour commencer a partir de l’adresse mémoire 100h

#start=led_display.exe# ;executable pour l’affichage led

#make_bin#

name "led"

a: db 1,2,3,4,5,6,7,8,9,200 ;decleration d’un vecteur a

b: db 9,8,7,6,5,4,3,2,100,200 ;decleration d’un vecteur b

c: db ? ;déclaration d’un vecteur vide

Debut: ;entete debut

MOV AX,a ;mètre le valeur de a dans le registre AX

MOV BX,b ;mètre le valeur de b dans le registre BX

ADD AX,BX ;faire la somme de contenue AX et BX

MOV AX,c ;met le résultat de l’addition dans c

out 199, ax ;affiche le contenue de AX

Voici le résultat de l’exécution :

Travail 03 :
• Ecrire un programme qui qui permet de faire une attente finie.
• Ecrire un programme qui qui permet d’afficher la chaine de caractères
suivante : « Tapez votre Nom », puis de faire une petite attente et puis
d’afficher la chaine de caractères « Tapez votre Prénom ».
Pour le programme d’entente voici le code commenter
MOV CX 100H

attente:

DEC CX ; décrémentation de contenue de CX

CMP CX,0 ;comparaison de valeur de CX et 0

JNZ attente ; si cx contient un valeur different de 0 sauter vers x1

ret

Le code complet et le voici :


org 100h

jmp start ; jump over data declaration

msg1: db "Tapez votre Nom", 0Dh,0Ah, 24h

msg2: db "Tapez votre Prenom", 0Dh,0Ah, 24h

start: mov dx, msg1

mov cx,100h

call affichage

call attente

mov dx, msg2

mov cx,100h

call affichage

call attente

ret

affichage:

mov ah,09h

int 21h

ret

attente:

DEC CX

CMP CX,0

JNZ attente
Résultat de l’exécution :

Vous aimerez peut-être aussi