Adresse de la varaiable PATH

cobbelguard Messages postés 2 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 5 octobre 2004 - 5 oct. 2004 à 01:05
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 7 oct. 2004 à 16:19
CobbleguardBonjour, je debute en asm et je recherche des infos sur le moyen de recuperer et afficher la variable PATH, quel que soit le mode d'affichage, DOS, BIOS, DIRECT VIDEO, ANSI. J'ai reussi a afficher le segment d'environnement en DOS mais la variable seule pas... qq connait l'adresse complete?
Merci de me donner un coup de main

je compile avec TASM/TLINK

4 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
5 oct. 2004 à 11:34
Salut,
GetEnvironmentStrings retrouve l'adresse du bloc environnement.
ToutEnMasm
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
5 oct. 2004 à 12:06
salut,

pour pouvoir repondre a ce genre de question, il faut que l'on sache dans quel environnement tu programme.
( DOS,WINDOWS,LINUX,...)

le probleme c'est pas l'affichage de la chaine sur une sortie diverse mais savoir ou la trouver suivant le type du programme COM,MZ,NE,PE,...

si tu est en win32, il y a forcement une fonction API.

en dos aussi je pense et pour les programmes COM, elle est a l'offset 0x80 de ton segment.

@++
0
cobbelguard Messages postés 2 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 5 octobre 2004
5 oct. 2004 à 23:39
Merci de repondre si vite, je programme sous DOS, on me demande de faire un EXE qui affiche la meme variable dans les 4 modes d'affichage. J'ai reussi a trouver le segment d'environnement entier à l'adresse 2Ch de la fonction 62 de l'int 21h. Mais ça affiche tout le segment et pas seulement la variable PATH. J'ai reussi cet aprem à l'afficher en mode DOS en utilisant la fonction 9 de l'int 21H mais encore une fois tout le segment. J'ai essayé avec les fonctions 0Eh et 13h l'int 10h du BIOS mais je plante la machine...

@+++

Cobbleguard
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 oct. 2004 à 16:19
re,

he he he, un petit probleme en ce qui concerne la terminaison de ta chaine.

tu dois calculer la taille de ta chaine et mettre le caractere de terminaison qui est utilisé par chaque API.

par exemple avec la fonction 9 de l'int 21h, il faut que tu mette un caractere '$'.

@++
0
Rejoignez-nous