pb fichier handle asm

pb fichier handle asm - ASM - Programmation

Marsh Posté le 25-08-2004 à 15:07:11    

salut a ts,  
 
voila j'ai plusieurs pb avec la gestion des fichiers par handle .  
je le precise tt de suite , je suis sous xp et j'utilise Tasm comme compilo .
 
 
tt d'abord j'ai des pb pr renommer les fichiers .
voila le code :
 
xor dx, dx
xor di, di
 
mov ah, 56h
mov dx, offset nom
mov di, offset nom2
int 21h
         
jne po_erreur
Ecrire_chaine <"erreur",10,13> [cpp]
po_erreur:
 
et ds le segment data :
nom  db "rf.txt"
nom2 db "ahah.txt",0
 
le fichier que j'essaie de renommer s'appel 'rf.txt' et il est juste a coté de l'executable et pourtant il me met erreur comment faire ?
 
 
j'ai un autre pb pr créer des fichiers , j'ai fais un macro qui est censé créer un fichier , qd je l'appel une fois sa marche mais qd je l'appel plusieur fois le dernier nom rentré sera le nom du seul fichier créé
 
voila le code du macro :
 
Creer_fichier macro nom?,attribut?
local nom
 
data segment use16
 
 nom db nom?,'$'
 
data ends
 
code segment use16
 
push bx cx dx
 
 mov ah, 3Ch
 mov cx, attribut?
 mov dx, offset nom
 int 21h
 
pop dx cx bx
 
code ends
 
endm
 
donc par exemple si je fais  
Creer_fichier "abc.txt" 0
il va bien me créer le fichier  
 
et si je fais  
Creer_fichier "abc.txt" 0
Creer_fichier "tada.txt" 0
il va me créer un seul fichier du nom de tada.txt  
de quoi viens ce pb ?
en + si rentre le nom en minuscule et il me crée le fichier avec le nom en majuscule , mais sa je crois que c'est normal avec dos  
 
merci d'avance
@+
 
 

Reply

Marsh Posté le 25-08-2004 à 15:07:11   

Reply

Marsh Posté le 26-08-2004 à 07:22:45    

Citation :

xor dx, dx
xor di, di
 
mov ah, 56h
mov dx, offset nom
mov di, offset nom2
int 21h
         
jne po_erreur
Ecrire_chaine <"erreur",10,13> [cpp]
po_erreur:


ton jne est faux, en cas d'erreur c'est le flag de retenue (Carry Flag) qui est positionné, il faut donc faire un jnc
 
Pour l'autre bout de code, en regardant vite fait je sais pas, m'enfin chui ptêt vieux jeu, mais mettre des caractères 'spéciaux' (comme tes '?') dans des labels, j'aime pas.


Message édité par beel1 le 26-08-2004 à 07:23:09
Reply

Marsh Posté le 26-08-2004 à 11:05:39    

voila je viens d'essayer avec jnc et sa me met erreur qd mm
j'ai regarder sur le site de Ralf Brown's et comme ax vaut 3 l'erreur est donc : 'path not found' mais je vois pas pk il me met sa .
pr ce qui est des '?' moi je trouve sa assez pratique pr reconnaitre les params

Reply

Marsh Posté le 26-08-2004 à 16:11:12    

nom  db "rf.txt",0
nom2 db "ahah.txt",0
 

Reply

Marsh Posté le 26-08-2004 à 18:48:25    

Ace17 a écrit :

nom  db "rf.txt",0
nom2 db "ahah.txt",0


:jap:
je l'avais pas vu (c'est vrai qu'en C, le fait de mettre entres " ajoute le zéro terminal...) :sweat:

Reply

Marsh Posté le 26-08-2004 à 18:55:06    

je viens d'essayer de mettre le 0 et sa marche pas
il me met tjs que c'est l'erreur num 3
pk ?

Reply

Marsh Posté le 27-08-2004 à 01:27:56    

mat74 a écrit :

pr ce qui est des '?' moi je trouve sa assez pratique pr reconnaitre les params


je dis ça parceque j'ai connu un parser qui prenait mal les caractères spéciaux et faisait alors n'importe quoi sans indiquer d'erreur :D
 
Ca permet de bien retenir qu'il est d'usage de déclarer des labels et des variables avec seulement des caractères alphanumériques et le '_', et qui ne commencent pas par un chiffre
 
Tiens par ex. pas plus tard qu'hier on a remarqué qu'un assembleur ST7 faisait n'importe quoi si un commentaire était collé à un label, comme ceci :
.le_label; le commentaire d'usage
 
écrit comme ça :
.le_label ; le commentaire d'usage
 
ça ne plante pas :pt1cable:


Message édité par beel1 le 27-08-2004 à 01:33:42
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed