1 / 12

Système d’exploitation : Assembleur

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

kevlyn
Télécharger la présentation

Système d’exploitation : Assembleur

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Programme source ( .asm) Programmebinaire ( .obj) Programme exécutable ( .exe) Assemblage par MASM Edition de liens par LINK 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

  3. Programme source ( .asm) Programmebinaire ( .obj) Programme exécutable ( .exe) Assemblage par MASM Edition de liens par LINK 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,…

  4. 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

  5. .MODEL SMALL .CODE MOV DL, 4 ADD DL, 3 ADD DL, 48 MOV AH, 2 INT 21H MOV AH, 4CH INT 21H END Notre addition Directives de compilation Conversion en ASCII Affichage Retour au DOS Premier programme en Assembleur (2/2)

  6. Table des codes ASCII

  7. Structure d’un programme en Assembleur : Les directives 1/2 • directive .model : • avant les autres directives • 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

  8. Structure d’un programme en Assembleur : Les directives 2/2 • directive .data : • permet d’initialiser un segment de données • segment clôturé par autre directive ou end • directive .code : • initialise un segment de code (et clôture le segment de données) • contient les instructions • si données, charger le registre DS (mettre adresse segment de données dans DS) • @data = nom par défaut du segment de données créé par .data • Obligation de passer par AX ! (voir instruction MOV ) • directive .end : • fin du fichier source

  9. Les types de données (1/3) • La directive db • syntaxe : [symbole] db valeur [,valeur,…] • db = definebyte - réservation d’une donnée sur 8 bits • exemples : a db 153 b db -53 c db 255 d db 0abh e db 10010010b • réservation d’une donnée non initialisée : f db ? • réservation d’un vecteur de données : vect1 db 3,12,-7 vect2 db 0ah,101b,-17 • l’opérateur DUP v1 db 3 dup (10) v2 db 2 dup (3,12,-7,0ah) • Chaînes de caractères : ch1 db ‘bonjour’ ch2 db “bonjour” ch3 db 0Ah,’bonjour’

  10. Les types de données (2/3) • La directive dw • syntaxe : [symbole] dw valeur [,valeur,…] • dw= defineword - réservation d’une donnée sur 16 bit attention à l’ordre des octets en mémoire • exemples : aadw 1534 bbdw 65535 cc dw -28645 dd dw 0abh eedw 10010010b • réservation d’une donnée non initialisée : ff dw ? • réservation d’un vecteur de données : vect1 dw 3,12,-7 vect2 dw 0ah,101b,-17 • l’opérateur DUP

  11. Les types de données (3/3) • La directive dd • syntaxe : [symbole] dd valeur [,valeur,…] • dd = definedouble - réservation d’une donnée sur 32 bit attention à l’ordre des octets en mémoire • exemples : aaaa dd 1534 bbbb dd 2305123451 cccc dd -286450451 dddd dd 0abcdef12h eeee dd 1111 0000 1111 000 0000 1111 1000 10010b • réservation d’une donnée non initialisée : ffff dd ? • réservation d’un vecteur de données : vectA dd 314,14012,-7 vectB dd 0fh,10401b,-17 • l’opérateur DUP

  12. Structure d’un programme en Assembleur : Règles importantes • Instruction à 2 opérandes : • Opérande 1 = Destination • Opérande 2 = Source exemple : movax, bx • Données traitées par l’ALU : type BYTE ou WORD Dans 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 : movax,0ABCDh

More Related