12
Système d’exploitation : Assembleur Semaine 04 Introduction à l’assembleur

Système d’exploitation : Assembleur

  • Upload
    kevlyn

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

Système d’exploitation : Assembleur. Semaine 04 Introduction à l’assembleur. Programme source ( .asm). Programme binaire ( . obj ). Programme exécutable ( .exe). Assemblage par MASM. Edition de liens par LINK. Programmer en Assembleur 1/2. Mnémoniques et code binaire - PowerPoint PPT Presentation

Citation preview

Page 1: Système d’exploitation : Assembleur

Système d’exploitation : Assembleur

Semaine 04Introduction à l’assembleur

Page 2: Système d’exploitation : Assembleur

Programmer en Assembleur 1/2

• Mnémoniques et code binaire• Encodage d’un programme (Notepad++)• Assemblage (MASM)– transformation du code assembleur en langage

machine• MOV AX,BX 1000 1011 11 00 0011 8BC3

Programme source ( .asm)

Programme binaire ( .obj)

Programme exécutable ( .exe)

Assemblage

par MASM

Edition de liens

par LINK

Page 3: Système d’exploitation : Assembleur

Programmer en Assembleur 2/2

• Edition de liens (LINK)– Création d’un fichier exécutable à partir d'un ou

plusieurs fichiers objets. • Debugger (Ollydbg):– Permet une exécution pas-à-pas du programme

avec la possibilité d’observer les valeurs présentes dans les registres,…

Programme source ( .asm)

Programme binaire ( .obj)

Programme exécutable ( .exe)

Assemblage

par MASM

Edition de liens

par LINK

Page 4: Système d’exploitation : Assembleur

Premier programme en Assembleur (1/2)

• Construction d’une ligne d’instruction en mnémonique :4 zones:LABEL CODE-OPERATION OPERANDE ;COMMENTAIRES

• L’instruction MOV : instruction la plus utilisée en Assembleur• L’instruction ADD• Addition de 4 et 3• Premier aperçu sur les interruptions

– qu’est-ce qu’une interruption ?– INT 21h– notion de service

Page 5: Système d’exploitation : Assembleur

Premier programme en Assembleur (2/2)

.MODEL SMALL

.CODEMOV DL, 4ADD DL, 3ADD DL, 48

MOV AH, 2INT 21H

MOV AH, 4CHINT 21H

END

Notre addition

Conversion en ASCII

Affichage

Retour au DOS

Directives de

compilation

Page 6: Système d’exploitation : Assembleur

Table des codes ASCII

Page 7: Système d’exploitation : Assembleur

Structure d’un programme en Assembleur : Les directives 1/2

• directive .model :a) avant les autres directivesb) initialise le modèle à employer en fonction du code et des données

(small-medium-compact-large-huge)

code data array– small <=64k <=64k <=64k– Medium >64k <=64k <=64k– Compact <=64k <=1M <=64k– Large <=1M <=1M <=64k– Huge <=1M <=1M >64k

Page 8: Système d’exploitation : Assembleur

Structure d’un programme en Assembleur : Les directives 2/2

• directive .data :a) permet d’initialiser un segment de donnéesb) segment clôturé par autre directive ou end

• directive .code :a) initialise un segment de code (et clôture le segment de données)b) contient les instructionsc) si données, charger le registre DS (mettre adresse segment de données dans DS) d) @data = nom par défaut du segment de données créé par .datae) Obligation de passer par AX ! (voir instruction MOV )

• directive .end :a) fin du fichier source

Page 9: Système d’exploitation : Assembleur

Les types de données (1/3)• La directive db

a) syntaxe : [symbole] db valeur [,valeur,…]b) db = define byte - réservation d’une donnée sur 8 bitsc) exemples : a db 153

b db -53c db 255d db 0abhe db 10010010b

d) réservation d’une donnée non initialisée : f db ?e) réservation d’un vecteur de données : vect1 db 3,12,-7

vect2 db 0ah,101b,-17f) l’opérateur DUP v1 db 3 dup (10)

v2 db 2 dup (3,12,-7,0ah)g) Chaînes de caractères : ch1 db ‘bonjour’

ch2 db “bonjour”ch3 db 0Ah,’bonjour’

Page 10: Système d’exploitation : Assembleur

Les types de données (2/3)• La directive dw

a) syntaxe : [symbole] dw valeur [,valeur,…]b) dw = define word - réservation d’une donnée sur 16 bit

attention à l’ordre des octets en mémoirec) exemples : aa dw 1534

bb dw 65535 cc dw -28645dd dw 0abhee dw 10010010b

d) réservation d’une donnée non initialisée : ff dw ?e) réservation d’un vecteur de données : vect1 dw 3,12,-7

vect2 dw 0ah,101b,-17f) l’opérateur DUP

Page 11: Système d’exploitation : Assembleur

Les types de données (3/3)• La directive dd

a) syntaxe : [symbole] dd valeur [,valeur,…]b) dd = define double - réservation d’une donnée sur 32 bit

attention à l’ordre des octets en mémoirec) exemples : aaaa dd 1534bbbb dd 2305123451 cccc dd -286450451dddd dd 0abcdef12heeee dd 1111 0000 1111 000 0000 1111 1000 10010b

d) réservation d’une donnée non initialisée : ffff dd ?e) réservation d’un vecteur de données : vectA dd 314,14012,-7

vectB dd 0fh,10401b,-17f) l’opérateur DUP

Page 12: Système d’exploitation : Assembleur

Structure d’un programme en Assembleur : Règles importantes

• Instruction à 2 opérandes :• Opérande 1 = Destination• Opérande 2 = Source

exemple : mov ax, bx

• Données traitées par l’ALU : type BYTE ou WORDDans une même instruction : utiliser le même type pour DESTINATION et SOURCE

• Instructions à 2 opérandes : IL FAUT UTILISER UN REGISTRE !! (destination ou source)

exemple : mov ax,0ABCDh