You are on page 1of 10

EXERCICE N°1:

Ecrire un programme qui réalise T3(i)= T1(i) + T2(i)


T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH
T2 DB 84H,0E6H,29H,34H,98H,0C3H,0F5H,0CCH,4AH,0B2H
T3 DW 0AH PUR(0)

EXERCICE N°2:
Soient deux nombres N1 et N2 chacun sur 2 octets. Elaborer un programme qui
réalise la soustraction (le plus grand moins le plus) et déposé le résultat en
mémoire.
EXERCICE N°3:
Soit une fonction algébrique T(x) ,a=3
T(x)=ax2-2
Ecrire un programme qui génère la table T en fonction de x :
x 1 2 3 4 5 6 7 8 9 10
T … … … … … … … … … …

EXERCICE N°4:
Soit la table
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH , 29H
Elaborer un programme qui inverse l’ordre d’organisation de T1
EXERCICE N°5:
Soit un nombre n présenté sur deux octets. Ecrire un bout de programme qui
donne le nombre de 1 (ou de zéro) dans sa représentation binaire.

*--------------------------------------------------------------------------------------------

1
Solution-1 :Addition de 2 tables T1 et T2 (octets) ,
T3 table résultat sur 2 octets

STACK SEGMENT
DB 64H PUR(0)
STACK ENDS

DATA SEGMENT
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH
T2 DB 84H,0E6H,29H,34H,98H,0C3H,0F5H,0CCH,4AH,0B2H
T3 DW 0AH PUR(0)

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV DX,0
MOV CX,0AH
LEA SI,T1
LEA DI,T2
LEA BX,T3
BOUCLE:
MOV AL,[SI]
MOV DL,[DI]
ADD AX,DX
MOV [BX],AX
MOV AH,0
INC SI
INC DI
INC BX
INC BX
LOOP BOUCLE
NOP
HLT
CODE ENDS ;
END START 2
*---------------------------------------------------------------------------------------

Solution-2 : Addition de 2 tables T1 et T2 (octets) ,


T3 table résultat sur 2 octets.
On réalise l’addition des octets poids faibles et résultat
dans AL si C=1 on place 1 dans AH et on transfert AX dans T3
pointé par BX.
STACK SEGMENT
DB 64H PUR(0)
STACK ENDS

DATA SEGMENT
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH
T2 DB 84H,0E6H,29H,34H,98H,0C3H,0F5H,0CCH,4AH,0B2H
T3 DW 0AH PUR(0)

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV DX,0
MOV CX,0AH
LEA SI,T1
LEA DI,T2
LEA BX,T3
BOUCLE:
MOV AH,0
MOV AL,[SI]
ADD AL,[DI]
JC SAUT
JMP SAUT1
SAUT:
MOV AH,1
SAUT1:

3
MOV [BX],AX
CLC
INC SI
INC DI
INC BX
INC BX
LOOP BOUCLE
NOP
HLT
CODE ENDS ;
END START

*--------------------------------------------------------------------------------

Solution EXERCICE N°2


STACK SEGMENT
DB 64H PUR(0)
STACK ENDS
DATA SEGMENT
N1 DW 0E8CEH
N2 DW 0FA6BH
R DW 0AH PUR(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV AX,[N1]
CMP AX,[N2]
JB SAUT
SUB AX,[N2]
MOV [R],AX
SAUT:

4
MOV AX,[N2]
SUB AX,[N1]
MOV [R],AX
NOP
HLT
CODE ENDS ;
END START

*--------------------------------------------------------------------------------

Solution EXERCICE N°2 résultat tjrs positif


STACK SEGMENT
DB 64H PUR(0)
STACK ENDS
DATA SEGMENT
N1 DW 0E8CEH
N2 DW 0FA6BH
R DW 0AH PUR(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV AX,[N1]
SUB AX,[N2]
JS SAUT
MOV [R],AX
SAUT:
NEG AX
MOV [R],AX
NOP
HLT
CODE ENDS ;
END START
*--------------------------------------------------------------------------------

5
Solution Ex03
STACK SEGMENT
DB 64H PUR(0)
STACK ENDS
DATA SEGMENT
X DB 1H
a DB 3H
T DW 0AH PUR(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV DX,0
MOV SI,OFFSET T
MOV CX,0AH
MOV BL,[X]
MOV AX,BX
BOUCLE:
CALL Fx:
INC [X]
INC SI
INC SI
MOV BL,[X]
MOV AX,BX
LOOP BOUCLE
nop
hlt
Fx:
MUL BL
MUL [a]
SUB AX,2
MOV [SI],AX
RET
CODE ENDS ;
END START
*--------------------------------------------------------------------------------

6
Solution Ex04
STACK SEGMENT
DB 64H PUR(0)
STACK ENDS

DATA SEGMENT
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH,29H
N DB 0BH

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV CL,[N]
SHR CL,1
LEA SI,T1
LEA DI,T1+10

BOUCLE:
MOV AL,[SI]
XCHG AL,[DI]
XCHG AL,[SI]
INC SI
DEC DI
LOOP BOUCLE
NOP
HLT
CODE ENDS ;
END START

*--------------------------------------------------------------------------------

7
Exercice N°5 nombre de un dans double octet
STACK SEGMENT
DB 64H PUR(0)
STACK ENDS
DATA SEGMENT
N DW 0B9F5H
X DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA ;Initialisation de DS.
MOV DS,AX
MOV AX,STACK ;Initialisation de SS.
MOV SS,AX
MOV AX,0
MOV CX,16
BOUCLE:
SHR [N],1
JNC SAUT
INC [X]
LOOP BOUCLE
JMP FIN
SAUT:
LOOP BOUCLE
FIN:
HLT
CODE ENDS ;
END START

*--------------------------------------------------------------------------------

8
EXERCICE N°1:
Ecrire un programme qui réalise T3(i)= T1(i) + T2(i)
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH
T2 DB 84H,0E6H,29H,34H,98H,0C3H,0F5H,0CCH,4AH,0B2H
T3 DW 0AH PUR(0)
EXERCICE N°2:
Soient deux nombres N1 et N2 chacun sur 2 octets. Elaborer un programme qui réalise
la soustraction (le plus grand moins le plus) et déposé le résultat en mémoire.
EXERCICE N°3:
Soit une fonction algébrique T(x) ,a=3
T(x)=ax2-2
Ecrire un programme qui génère la table T en fonction de x :
x 1 2 3 4 5 6 7 8 9 10
T … … … … … … … … … …
EXERCICE N°4:
Soit la table
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH , 29H
Elaborer un programme qui inverse l’ordre d’organisation de T1
EXERCICE N°5:
Soit un nombre n présenté sur deux octets. Ecrire un bout de programme qui donne le
nombre de 1 (ou de zéro) dans sa représentation binaire.

*----------------------------------------------------------------------------------------------------
EXERCICE N°1:
Ecrire un programme qui réalise T3(i)= T1(i) + T2(i)
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH
T2 DB 84H,0E6H,29H,34H,98H,0C3H,0F5H,0CCH,4AH,0B2H
T3 DW 0AH PUR(0)
EXERCICE N°2:
Soient deux nombres N1 et N2 chacun sur 2 octets. Elaborer un programme qui réalise
la soustraction (le plus grand moins le plus) et déposé le résultat en mémoire.
EXERCICE N°3:
Soit une fonction algébrique T(x) ,a=3
T(x)=ax2-2
Ecrire un programme qui génère la table T en fonction de x :
x 1 2 3 4 5 6 7 8 9 10
T … … … … … … … … … …
EXERCICE N°4:
Soit la table
T1 DB 61H,96H,0F7H,43H,0D7H,75H,0B8H,8AH,5DH,1CH , 29H
Elaborer un programme qui inverse l’ordre d’organisation de T1
EXERCICE N°5:
Soit un nombre n présenté sur deux octets. Ecrire un bout de programme qui donne le
nombre de 1 (ou de zéro) dans sa représentation binaire.

9
10