mouadestla
Messages postés48Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention31 janvier 2009
-
31 janv. 2009 à 18:48
42wawa42
Messages postés143Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention 6 septembre 2011
-
11 févr. 2009 à 20:12
Bonsoir ,
je débute en assembleur , j'esseye de coder en 16 bits un petit programme qui fait appele à l'interuptions 21h : 4Eh du DOS qui cherche un fichier sur le disque dur , la recherche s'effectue mais quand j'esseye de récuperer le nom du premier fichier j'ai un tas de chaines bizzares , voici mon code :
.386
code segment use16
assume cs:code,ds:data,ss:pile
debut :
mov ax,data
mov ds,ax
MOV AH,4Eh
MOV DX,offset ext
XOR CX,CX
int 21h
JC erreurs
MOV AH,09h
MOV Dx,ds:80H+1Eh
int 21h
MOV ah,09h
MOV DX,offset reu
INT 21h
MOV AH,4Ch
int 21h
erreurs :
MOV AH,09h
MOV DX,offset erreur
int 21h
mov ah,4ch
int 21h
code ends
data segment use16
reu db 10,13,"reussie",'$'
ext db "*.TXT",00h
erreur db 10,13,"erreur d'ouverture",'$'
data ends
pile segment stack
pile ends
end debut
-------
la DTA contient les informations relatives à la recherche effectuée par l'interruption 4e dos , elle contient notemment le nom du premier fichier trouvé qui est enregistré à l'adresse 1E de la DTA , cette DTA se trouve dans le PSP du programme EXE , et mon probléme c'est que je ne peux pas accéder à l'adresse exacte de la DTA pour récupérer le nom du premier fichier trouvé et l'afficher à l'ecran .
Je suis WIN XP , j'utilise TASM
De l'aiide svp !! :(
Merci d'avance
mouadestla
Messages postés48Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention31 janvier 2009 31 janv. 2009 à 18:58
je vois que le code n'est pas bien affiché , je revoilà :
----
.386
code segment use16
assume cs:code,ds:data,ss:pile
debut :
mov ax,data
mov ds,ax
MOV AH,4Eh
MOV DX,offset ext
XOR CX,CX
int 21h
JC erreurs
MOV AH,09h
MOV Dx,ds:1Eh ; ici je c pas koi mettre pour récupérerle nom
int 21h
MOV ah,09h
MOV DX,offset reu
INT 21h
MOV AH,4Ch
int 21h
erreurs :
MOV AH,09h
MOV DX,offset erreur
int 21h
mov ah,4ch
int 21h
code ends
data segment use16
reu db 10,13,"reussie",'$'
ext db "*.TXT",00h
erreur db 10,13,"erreur d'ouverture",'$'
data ends
pile segment stack
pile ends
end debut