Vous êtes sur la page 1sur 4

Département Electronique Faculté de Technologie Université Ferhat Abbas

TP 3 : Les interruptions et boucle

Solution.

Liste des interruptions supportées par l’emu8086.

INT 10h/00h INT 10h/0Eh INT 10h/13h INT 10h/1003h INT 11h
INT 10h/01h INT 12h INT 13h/00h INT 13h/02h INT 13h/03h
INT 10h/02h INT 15h/86h INT 16h/00h INT 16h/01h INT 19h
INT 10h/03h INT 1Ah/00h INT 20h INT 21h INT 21h/01h
INT 10h/05h INT 21h/02h INT 21h/05h INT 21h/06h INT 21h/07h
INT 10h/06h INT 21h/09h INT 21h/0Ah INT 21h/0Bh INT 21h/0Ch
INT 10h/07h INT 21h/0Eh INT 21h/19h INT 21h/25h INT 21h/2Ah
INT 10h/08h INT 21h/2Ch INT 21h/35h INT 21h/39h INT 21h/3Ah
INT 10h/09h INT 21h/3Bh INT 21h/3Ch INT 21h/3Dh INT 21h/3Eh
INT 10h/0Ah INT 21h/3Fh INT 21h/40h INT 21h/41h INT 21h/42h
INT 10h/0Ch INT 21h/47h INT 21h/4Ch INT 21h/56h INT 33h/0000h
INT 10h/0Dh INT 33h/0001h INT 33h/0002h INT 33h/0003h INTO/ INT4

L’interruption pour sélectionner un mode vidéo (Set video mode).

INT 10h / AH = 00h - set video mode.


input:
AL = desired video mode.
these video modes are supported:
00h - text mode. 40x25. 16 colors. 8 pages.
03h - text mode. 80x25. 16 colors. 8 pages.
13h - graphical mode. (L’emu8086 ne supporte pas ce mode)

Programme 1a : Ecrire un programme pour ouvrir une fenêtre vidéo en mode texte (user screen) de
taille 40x25 et puis de 80x25 (pixels).
example:
40x25 80x25
mov al, 00h mov al, 03h
mov ah, 00h mov ah, 00h
int 10h int 10h

Programme 1b : Ecrire un programme pour ouvrir une fenêtre vidéo en mode texte (user screen) de
taille 40x25 puis écrire la lettre ‘a’..

INT 10h / AH = 0Eh - teletype output.


input:
AL = character to write.

MOV AL, 'a'


MOV AH, 0Eh
INT 10h

Programme 1c : Ecrire un programme pour ouvrir une fenêtre vidéo en mode texte (user screen) de
taille 40x25 puis placer votre curseur ‘<’ aux coordonnées : ligne = 4 colonne : 15 . (pixels).

Licence électronique 1 Le microprocesseur


Département Electronique Faculté de Technologie Université Ferhat Abbas

INT 10h / AH = 2 - set cursor position.


input:
DH = row.
DL = column.
BH = page number (0..7).

MOV DL,20 ; les coins 0; 39; 39 0 ; col.


MOV DH,12 ; les coins 0; 24; 0 39 ; row.
MOV AH, 02h ; Function set cursor position.
INT 10h ; Int + MOV AH, 02h

; show current cursor position:


MOV AL, '<'
MOV AH, 0Eh
INT 10h
hlt

Programme 1d : Ecrire un programme pour ouvrir une fenêtre vidéo en mode texte (user screen) de
taille 40x25 puis écrire au milieu de la fenêtre ‘Licence’.

MOV DL,16 ; les coins 0; 39; 39 0 ; col.


MOV DH,12 ; les coins 0; 24; 0 39 ; row.
MOV AH, 02h ; Function set cursor position.
INT 10h ; Int + MOV AH, 02h

; show current cursor position:


MOV AL, 'L'
MOV AH, 0Eh
INT 10h

MOV AL, 'i'


MOV AH, 0Eh
INT 10h

MOV AL, 'c'


MOV AH, 0Eh
INT 10h

MOV AL, 'e'


MOV AH, 0Eh
INT 10h

MOV AL, 'n'


MOV AH, 0Eh
INT 10h

MOV AL, 'c'


MOV AH, 0Eh
INT 10h

MOV AL, 'e'


MOV AH, 0Eh
INT 10h

Hlt

Licence électronique 2 Le microprocesseur


Département Electronique Faculté de Technologie Université Ferhat Abbas

L’édition en assembleur n’est pas Word mais on peut, de loin, mieux faire que ce qu’on vient de
voir : saisissez le programme ci-dessous et faite le fonctionner.

; set data segment:


MOV AX, CS
MOV DS, AX
MOV ES, AX

; input a string:
MOV DX, OFFSET S1
MOV AH, 0AH
INT 21h

S1 DB 30, 30 dup (' ')

Programme 1 : L’interruption pour signaler un débordement Into.

Interrupt 4 if Overflow flag is 1.


Algorithm:
if OF = 1 then INT 4
Example:
; -5 - 127 = -132 (not in -128..127)
; the result of SUB is wrong (124),
; so OF = 1 is set:
MOV AL, -5
SUB AL, 127 ; AL = 7Ch (124)
INTO ; process error.
RET

1- P1 : Reprendre le programme d’addition des valeurs 121(signé) et 13(signé) en utilisant


juste AX.
MOV Ax,13
add Ax, 121 ; AL = 7Ch (124)
INTO ; process error.
HLT
2- P2 : Reprendre le programme d’addition des valeurs 121(signé) et 13(signé) en utilisant
AL.
Mais il faut, cette fois ci, que votre programme vous informe lorsqu’il y a débordement.
MOV AL,13
add AL, 121 ; AL = 7Ch (124)
INTO ; process error.
HLT

Licence électronique 3 Le microprocesseur


Département Electronique Faculté de Technologie Université Ferhat Abbas

Programme 3 : Autre propriété du registre CX.


a- Ecrire un programme pour placer les valeurs 1 à 3 dans la zone mémoire à partir de l’adresse
4000h.

Programme Observation

Mov [4000h], 1
Mov [4001h], 2
Mov [4002h], 3

b- Ecrire un programme pour placer les valeurs 1 à 200 dans la zone mémoire à partir de
l’adresse 4000h.

Programme Observation

MOV AL, 1
Mov Bx, 4000h
mov CL, 199
toto: Mov [Bx], AL; ne travail pas avec BL, BH
inc Bx ; bl
Inc AL
Loop toto
hlt

Licence électronique 4 Le microprocesseur

Vous aimerez peut-être aussi