Vous êtes sur la page 1sur 2

Le programme que je vous propose necessite trois fichier source pour son executi

on:
fichier source assembleur appele premier.asm
fichier source en langage 'C' appele trans1.c
fichier source en langage 'C' appele trans2.c.c
le programme principal 'main' se trouve dans le fichier source premier.asm. nous
avons appele le programme principal
dans ce fichier _main (_main proc near). Ce programme fait appel a la procedure
_transferer1:
"void transferer1(int *source, int *destination, int compteur)".
c'est une procedure qui fait le transfert des elements de Tab3 a Tab4 "type mot:
16 bits".
La procedure transferer1 se trouve dans le fichier trans1.c Cette procedure est
bien evidemment ecrite en langage 'C'.
Par la suite nous avons fait appel a la procedure _transferer2:
"void transferer2(char *source, char *destination, int compteur).
c'est une procedure qui fait le transfert des elements de Tab1 a Tab2 "type octe
te: 8 bits".
La procedure transferer2 se trouve dans le fichier trans2.c Cette procedure est
bien evidemment ecrite en langage 'C'.
Avant l'appel de ces deux procedures le programme principal ecrit en assembleur
"premier.asm" place
les arguments de ces procedures dans la pile en faisant:
mov bx,5
push bx
mov ax,offset tab4; mov ax,18
push ax
mov ax,offset tab3
push ax
pour la procedure transferer1
et:
mov bx,4 ; 4 element a transferer
push bx
mov ax,offset tab2 ;mov ax,18
push ax
mov ax,offset tab1
push ax
pour la procedure transferer2
Ce qu'il faut faire pour generer l'executable:
1)compiler le programme assembleur premier.asm par le compilateur masm
c:\jelassi> masm /c premier.asm
ceci permet de generer premier.obj : fichier binaire mais pas encore executable
2) compiler le programme trans1.c par le compilateur 'C'
c:\jelassi> tcc -c trans1.c
ceci permet de generer le programme trans1.obj : fichier binaire mais pas execut
able
3)compiler le programme trans2.c par le compilateur 'C'
c:\jelassi> tcc -c trans2.c
ceci permet de generer le programme trans2.obj : fichier binaire mais pas execut
able
A ce stade la nous avons trois fichiers objets (premier.obj trans1.obj et trans2
.obj).
Afin de generer l'executable il faut faire appel a l'editeur de lien de Microsof
t "Linker".
c:\jelassi> link c0s.obj premier.obj trans1.obj trans2.obj
Run file [c0s.exe] premier.exe
List File[NUL.MAP]
Libraries [.LIB] cs.lib
Definitions Files [NUL.DEF]
c:\jelassi>
Afin d'excuter le programme il suffit de taper son nom qui est jelassi.exe
Remarque 1: cs.lib est necessaire afin de recuperer le code de printf (cs.lib es
t la librairie model small
du langage 'C')
Remarque 2: Si on utilise une des librairies du langage 'C' il faut utiliser ave
c son fichier objet correspondant
autrement dis dans notre cas nous avons utilise c0s.obj qui vient de la librairi
e 'C' aussi.
Ces deux fichiers se trouvent dans le reperetoire c:\tc\lib.

Vous aimerez peut-être aussi