Lecture de DTA

Signaler
Messages postés
48
Date d'inscription
samedi 12 novembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009
-
Messages postés
143
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011
-
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

2 réponses

Messages postés
48
Date d'inscription
samedi 12 novembre 2005
Statut
Membre
Dernière intervention
31 janvier 2009

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
Messages postés
143
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011

Hello
Encore une fois mais verticalement plus simple pour lecture du code.

A Plus
42wawa42