Bonjour,
Je sais que cette question a été posé plusieurs fois sur ce forum, pour avoir pris le temps de lire les réponses que j'ai trouvé.
Cependant l'assembleur n'est pas du tout ma spécialité. Je programme en C/C++ et Java habituellement. ( J'ai néanmoins quelques base en assembleur, plus ce que j'ai appris ces derniers jours durant mes recherches. )
Mais pour les besoins d'une application que je développe, il faudrait que je puisse ajouter une fonction à une DLL.
Cette fonction serait chargée d'ouvrir puis écrire un code dans un fichier .txt, et enfin refermer le fichier.
D'après ce que j'ai pu lire ici et là, mon code doit ressembler à ceci :
Alors il me semble bien avoir compris que dans DX je dois mettre l'offset de ma chaine de caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 mov AH, 3Dh ; pour la fonction "ouvrir fichier" mov AL, 2 ; mode d'ouverture "lecture/écriture" ; ici l'instruction qui me pose problème mov DX, ???? INT 21 ; interruption logiciel
Mais avant je dois avoir dans DS, le segment où est stoqué ma chaine.
Et là je ne sais pas comment récupérer cette info ( le segment ). Je sais que j'ai stoqué la chaine dans .rdata, mais comment y accéder.
Avant compilation en assembleur j'ai vu des choses de la sorte :
Mais la première instruction ne fonctionne pas lorsque je le fais dans le débugueur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 mov ax, @rdata mov ds, ax
J'espère avoir été clair, si ce n'est pas le cas demandez moi des précisions.
Merci par avance.
PS: je suis sur un système 32 bits.
Partager