Université A. Mira-Bejaia M1 ELT/ER Faculté de Technologie Module : UEF1113 Dép
Université A. Mira-Bejaia M1 ELT/ER Faculté de Technologie Module : UEF1113 Département de Génie électrique Série 2 Exercice 1 : On considère les nombres X1 = (4F)16, X2 = (9AE)16 et X3 = (E9C)16. 1°) Ecrivez un programme en assembleur 8086 qui effectue les tâches suivantes: - Le chargement de X1, X2 et X3 aux adresses : (700)16, (800)16 et (900)16 ; - Calcul de Y1 = (X3 X1) XOR X2; - Calcul de 1 3 2 2 X ) X X ( Y ; ( 2 X , 3 X sont les compléments à 1 de X1 et de X3, calculer par « NOT ») - Déclaration des variables Y1 et Y2. 2°) Calculer les résultats : Y1 et Y2 en octal. 3°) Donner la valeur de PF après chaque résultat Y1 et Y2. 4°) Combien d’octets en mémoire sont occupés par les nombres X1, X2 et X3. __________________ Exercice 2 : Soient les valeurs : s1 = (3C7)16, s2 = (B15)16 et s3 = (7E9)16. 1°) Donner le programme en assembleur 8086 les opérations suivantes - Cinq décalages arithmétiques à gauche, suivi de quatre rotations à droite sur s1. Le résultat est stocké dans la variable p1, (initialement CF=1); - La multiplication de s2 par 8, en utilisant l’instruction de décalage qui convient. Le résultat est stocké dans la variable p2, (la valeur de CF initiale est celle obtenue après calcul de p1); - La mise à zéro de l’octet faible de s3 et son octet fort reste le même. Le résultat est stocké dans la variable p3, (la valeur de CF initiale est celle obtenue après calcul de p2). 2°) Calculer les résultats : p1, p2 et p3 en hexadécimal 3°) Donner la valeur de CF après chaque résultats p1, p2 et p3. -------page ½------- Exercice 3 : 1°) On considère le programme suivant qui calcul w1 et w2 : ORG 100h ; Calcul de w1 MOV AL, g1 3 octets MOT AL 2 octets MOV BL, g2 4 octets NOT BL 2 octets XOR AH, AH 2 octets XOR BH, BH 2 octets ADD AX, BX 2 octets XOR BL, g3 4 octets XOR DX, DX 2 octets DIV BX 2 octets MOV w1, AX 3 octets ; Calcul de w2 MOV AL, g1 3 octets OR AL, g2 4 octets MOT AL 2 octets MOV BL, g2 4 octets AND BL, g3 4 octets NOT BL 2 octets ADD AX, BX 2 octets MOV w2, AX 3 octets RET 1 octet g1 db 21h 1 octet g2 db 32h 1 octet g3 db 1Eh 1 octet w1 dw ? 2 octets w2 dw ? 2 octets 1°) A partir du programme, donner les expressions mathématiques w1 et w2, en fonction des opérations arithmétiques et logiques ainsi que les valeurs numériques. 2°) Calculer w1 et w2 en hexadécimal et en octal. 3°) Calculer le nombre d’octets occupé par programme en mémoire et donner l’offset de l’instruction “RET”. -------page 2/2------- Corrigé Exercice N°1 1°) Le programme en assembleur 8086 ORG 100h ; Chargement des nombres dans la mémoire mov [700h],4Fh mov [800h],9AEh mov [900h],0E9Ch ; Calcul de Y1 MOV AX, [900h] DIV word ptr [700h] XOR AX, [800h] MOV Y1, AX ; Calcul de Y2 MOV AX, [800h] MOT AX MOV BX, [900h] SUB AX, BX XOR DX, DX MUL word ptr [700h] MOV Y2, AX RET ; Déclaration des variables Y1 dw ? Y2 dw ? 2°) Calcul des résultats Y1 et Y2 en octal Y1= (X3 X1) xor X2= ((E9C)16 (4F)16) xor (9AE)16 =(2F)16 xor (9AE)16 =(981)16=(4601)8 Y2 = ( 2 X - 3 X ) X1= 16 AE 9 ( - ) C 9 E 16 (4F)16 =((F651)16 - (F163)16) (4F)16 = (4EE)16 (4F)16 = (18572)16=(302562)8 3°) Calcul du flag PF après chaque résultats Y1 et Y3 On a Y1 = (981)16 = (0000100110000001)2 donc PF = 1 Y2 = (18572)16 = (000000000000000011000010101110010)2 donc PF = 1 4°) Calcul du nombre d’octets en mémoire occupés par les nombres X1, X2 et X3 X1 occupe 1 octet ; X2 occupe 2 octets ; X3 occupe 2 octets, donc les nombres occupent 5 octets _____________________ Exercice 2 1°) Le programme en assembleur 8086 ORG 100h ; Calcul de p1 MOV AX, 3C7h MOV CL, 5 SAL AX, CL MOV CL, 4 ROR AX, CL MOV p1, AX ; Calcul de p2 MOV AX, 0B15h MOV CL, 3 SHL AX, CL MOV p2, AX ; Calcul de p3 MOV AX, 7E9h MOV CL, 8 SHR AX, CL SHL AX, CL MOV p3, AX RET ; Déclaration des variables p1 dw ? p2 dw ? p3 dw ? 2) Calcul des résultats p1 , p2 et p3 en hexadécimal s1= (03C9)16 (78E0)16 p1= (78E)16=(4011)16 et CF=0 s2= (0B15)16 p2 = (58A8)16 et CF=0 s3= (07E9)16 7 p3= (700)16 et CF=0 3) Calcul de CF après chaque résultats p1, p2 et p3 Après calcul de p1, CF=0 ; après calcul de p2, CF=0 et après calcul de p3, CF=0 _____________________ Exercice 3 1) Formulation des expressions mathématiques des nombres w1 et w2 On déduit du programme w1 = ( 1 g + 2 g ) / (g2 g3) w2 = (g1 NOR g2) + (g2 NAND g3) 2) Calcul de w1 et w2 en hexadécimal et en octal w1 = ( 1 g + 2 g ) / (g2 g3) = 16 21 ( + ) 32 16 /((21)16(1E)16) =((DE)16(CD)16) /(2C)16 =(1AB)16 /(2C)16 = (9)16 = (11)8 reste (1F)16 w2 = (g1 NOR g2) + (g2 NAND g3) = ((21)16 NOR (32)16) + ((21)16 NAND (1E)16) 5 SAL 4 ROR 3 SHL 8 SHR 8 SHL = 16 33 + 16 12 = (CC)16 + (ED)16 = (1B9)16 = (671)8 3°) Calcul du nombre d’octets occupé par programme en mémoire et de l’offset de l’instruction “RET” : - On calcul le nombre d’octets de chaque ligne du programme donné dans l’énoncé de l’exercice et on déduit le nombre d’octets du programme, on obtient 58 octets - L’offset de l’instruction « RET » est (100)16 + (33)16 = (133)16 = 307 uploads/s3/exercices-assembleur-m1-elt-er-serie-2-avec-corrige.pdf
Documents similaires










-
60
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 15, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.1253MB