Salut,
je viens de faire un petit programme tout bete d'apprentissage qui attend la saisie d'une chaine puis l'affiche inversée
le voici (les critiques sont les bienvenues) :
le code est compilé avec Tasm et linké avec Tlink, le probleme c'est qu'il sort un warning à la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 .386 code segment use16 assume cs:code, ds:data, ss:pile debut : if1 include ma_lib.lib ;fichier externe contenant macro... endif mov ax,data ;initialisation segment de données mov ds,ax mov ah,0ch mov al,0ah mov dx,offset chaine ;attente saisie chaine -> chaine int 21h saut_retour ; macro effectuant un retour a la ligne et chariot xor cx,cx mov cl,[chaine+1] ;on place dans cx la taille de la chaine inverse : mov si,cx mov dl,chaine[si+1] ;on affiche chaine caractere par caractere mov ah,02h ;mais en partant de la fin int 21h loop inverse mov ah,4ch ;fin du programme int 21h code ends data segment use16 chaine db 20, 20 DUP('$') ;variable pour la chaine saisie data ends pile segment stack use16 remplissage db 256 DUP(?) pile ends end debut
je suppose que le module dont parle le compilateur est ma_lib.lib, que voici :*Warning* inverse.asm<49> Module is pass dependent - compatibility pass was done
J'aimerais bien comprendre pourquoi j'ai ce warning
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 .386 ;----------------------------------Définition(s) Macro(s) saut_retour macro ;macro effectuant un saut de ligne et un retour chariot local text push ax dx ;sauvegarde de ax et dx mov ah,02h mov dl,10 ;ecriture du saut de ligne int 21h mov dl,13 ; ecriture du retour chariot int 21h pop dx ax ;restauration de ax et dx endm saut_retour ;---------------------------------------------------------------
Merci pour votre aide
A+
Partager