Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Chapitre 5 - fichiers EXE-COM pour le dos
1. Fichiers EXE-COM pour le
DOS– Module
Microprocesseur
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
2. Structure d’un programme en mémoire
Lorsque l'utilisateur exécute un programme, celui est
d'abord chargé en mémoire par le système.
Le DOS distingue deux modèles de programmes
exécutables : les Fichiers COM et les Fichiers EXE.
4. Fichiers COM
Un programme COM ne peut comporter qu'un seul
segment,( les adresses de segment sont inutiles).
Le PSP fait partie de ce segment, ce qui limite à 64 Ko-256
octets la taille maximale d'un fichier COM. Cela implique
également que le programme lui-même débute à l'offset
100h et non à l'offset 0h.
Les programmes EXE ne sont quant à eux limités que par
la mémoire disponible dans l'ordinateur.
5. Fichiers COM
Code SEGMENT ; (On pourait l’appeler autrement)
ASSUME cs: code, ds : code, es : code, ss : code ;
indique à l’assembleur quel registre de segment
Org 100h ; caractéristique des fichiers COM.
Jmp debut
a1 db 0605h
a2 db 0201h
Debut :
MOV AX, 0
ADD AX, a1
ADD AX, a2
Code ENDS ; fin du segment “code ‘’
Structure d’un fichier COM
6. Fichiers COM
Les directives SEGMENT et ENDS permettent de
nommer des segments sans faire le lien avec les
registres segments.
La directive ASSUME aide l’assembleur. Elle fait le lien
entre les segments déclarés et les registres CS,DS, ES et
SS.
7. Fichiers EXE
Bien qu'il soit possible de n'utiliser qu'un seul segment à
tout faire, la plupart des programmes EXE ont :
Un segment réservé au code.
Un ou deux autres aux données.
Un dernier réservé à la pile.
Le programme commence donc à l'offset 0h du
segment de code et non à l'offset 100h.
8. Fichiers EXE
Pile SEGMENT STACK ; le mot-clé “stack” indique que ce segment est le
segment de pile.
Remplissage db 256 dup(?)
Pile ENDS ; ici se termine le segment de pile
Data SEGMENT ; On met les directives de données
a1 db 0605h ;
a2 db 0201h;
Data ENDS ; ici se termine le segment de donnees
Extra SEGMENT ; On met les directives pour déclarer ; les variables (
chaînes de Caractères).
Extra ENDS ; ici se termine l extra segment
Structure d’un fichier EXE
9. Fichiers EXE
Code SEGMENT ; l'étiquette peut etre un autre nom
ASSUME CS :Code, DS : Data, ES : Extra, SS :Pile . ; ASSUME indiquer à l'assembleur où se
situe le segment de code , données etc ..
Mov AX,Data ; il faut initialiser les segment de données:
Mov DS,AX
Mov AX,Extra ; ou /et extra segment
Mov ES,AX
Mov AX,Pile ; ou / et segment de pile p
Mov SS,AX
MOV AX,0
ADD AX ,a1
ADD AX, a2
Code ENDS ; fin du segment d'instructions
Structure d’un fichier EXE