begin process at 2012 05 25 03:54:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Aide a la programmation Windows

 > 

Espace disk disponible


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Espace disk disponible

lundi 14 mars 2005 à 14:00:08 | Espace disk disponible

VBFRANCE

j'aurais une question a posée

J'arrive a recupere l'espace disque disponible sans aucun soucis pas ce petit prog

.data
Free_Disk_Low  dd 0     
Free_Disk_High  dd 0 
Int64_1   dq  0      ; Temp value
Int64_2   dq 0    ; Temp Value
message1  db "espace disponible en Mo",0
message2  db "espace disponible en Go",0

.code
push  offset Free_Disk_Low 
push  offset Int64_1  ; necessaire pour win 98/me
push  offset Int64_2  ; necessaire pour win 98/me
push  NULL     ; null = disk courrant
call  GetDiskFreeSpaceEx 
xor eax,eax
jz error:
mov eax,Free_Disk_Low
shr eax,16
mov ecx,Free_Disk_High
shl ecx,16
add eax,ecx
shr eax,4
invoke MessageBox,0, val(eax) ,offset message1,MB_OK
shr eax,10
invoke MessageBox,0, val(eax) ,offset message2,MB_OK

Ne serait-il pas plus judicieux d'utiliser les registres MMX 64bits pour cette fonction ?
quelqu'uns aurait-il une idée de la demarche a suivre ?

Thierry.

lundi 14 mars 2005 à 22:12:49 | Re : Espace disk disponible

BruNews

Administrateur CodeS-SourceS
L'API attend ici des adresses mémoire, tu es donc obligé d'en donner. C'est ensuite que je ne comprends plus ton procédé, tu es certain que le nbr d'octets retourné tiendra longtemps sur 32 bits ??? A la vitesse à laquelle les disques durs augmentent...

ciao...
BruNews, MVP VC++
mardi 15 mars 2005 à 10:36:40 | Re : Espace disk disponible

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

xor eax,eax
jz error:


te ramenera toujours vers error car xor eax,eax met le zero flag a 1

@++
mardi 15 mars 2005 à 10:49:25 | Re : Espace disk disponible

BruNews

Administrateur CodeS-SourceS
test eax, eax

ciao...
BruNews, MVP VC++
mardi 15 mars 2005 à 15:39:16 | Re : Espace disk disponible

VBFRANCE

Autant pour moi, pour le xor au lieu de test

en ce qui concerne la taille de variables je l'ai mise sur deux dword collé cote a cote pour qu'ils simulent un QWORD a moins que cela de doit pas etre fait comme cela.
je decale les 16 octets fort de Free_Disk_Low a droite
je decale les 16 octets faible de Free_Disk_High a gauche
J'aditionne les deux variables
et decale le tout le 4 a droite.
C'est comme si je decaler un Qword de 20

En fait ma question, je me suis mal exprimé, etait de savoir si je peux faire cette operation directement sur un des registre 64bits MMX et comment le faire ?
un code qui ressemblerait a cela:

Attention ce code ne fonctionne pas
.data
Free_Disk dq 0     
Int64_1   dq 0    ; Temp value
Int64_2   dq 0    ; Temp Value
message1  db "espace disponible en o",0
message2  db "espace disponible en Ko",0
message3  db "espace disponible en Mo",0
message4  db "espace disponible en Go",0

.code
push  offset Free_Disk_Low
push  offset Int64_1  ; necessaire pour win 98/me
push  offset Int64_2  ; necessaire pour win 98/me
push  NULL            ; null = disk courrant
call  GetDiskFreeSpaceEx
test eax,eax
jz error:
mov mm0,Free_Disk
invoke MessageBox,0, val(mm0) ,offset message1,MB_OK
shr mm0,10
invoke MessageBox,0, val(mm0) ,offset message2,MB_OK
shr mm0,10
invoke MessageBox,0, val(mm0) ,offset message3,MB_OK
shr mm0,10
invoke MessageBox,0, val(mm0) ,offset message4,MB_OK




vb

mardi 15 mars 2005 à 15:54:16 | Re : Espace disk disponible

VBFRANCE

oups, un petite erreur juste au dessus
il faut lire

push  offset Free_Disk
et non
push  offset Free_Disk_Low

vb
mercredi 16 mars 2005 à 12:11:32 | Re : Espace disk disponible

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

pour decaler un qword, utilise plutot shrd/shld.

@++

mercredi 16 mars 2005 à 17:16:53 | Re : Espace disk disponible

VBFRANCE

ce que je voudrais savoir, c'est comment pouvoir utiliser les registres MMX ?

J'ai une erreur du type:

coprocessor register cannot be first operand quand j'utilise le registre mm0

 Thierry

mercredi 16 mars 2005 à 17:22:47 | Re : Espace disk disponible

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Manuels Intel:
[ Lien ]

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : espace, offset, disponible, disk, eax


Répondre à ce message

Sujets en rapport avec ce message

débutant qui a un prob avec l'int21h [ par sibi12 ] salut voivi mon code : mov ah, 09h mov dx, offset buffer int 21hbuffer a été déclaré comme ca: buffer db 50 dup(0)le compilateur me met passage en pmode [ par TRAX44 ] salut,g 1 petit pb, kan je ceu pa c en mode protégé mov eax, cr0 or al, 1 mov cr0, eax(g deja cree et charger la gdt)le pc # Export Table - Kernel32.dll - GetProcessAddress # [ par joanna ] Voici le code qui devrait récupérer l'adresse de la fonction "GetProcessAddress" connaissant l'ImageBase du module "kernel32.dll".Malheureusement à la # Export Table --- Kernell32.dll --- GetProcAddress # [ par joanna ] Voici le code qui devrait récupérer l'adresse de la fonction "GetProcessAddress" connaissant l'ImageBase du module "kernel32.dll".Malheureusement à la Ecriture de chaîne [ par Laurent1313 ] Salut,Je cherche à modifier une chaîne en assembleur. Je prends donc un caractère, je fais un traitement dessus puis je recopie le caractère dans la c Différences ??? [ par Arecibo ] Voila je debute en assembleur et j'aimerais savoir quelles sont les différences entre :-> mov eax, ebx et mov eax, [ebx]-> mov esi, eax et mov [esi], Ancien code - CreateWindowEx ne fonctionne pas [ par TehWan ] Je ne comprends vraiment pas pourquoi CreateWindowEx ne fonctionne pas. Je code en ancien code avec MASM32. J'ai même essayé la nouvelle syntaxe (invo COULEUR DE TEXTE LORS DU PASSAGE DE LA SOURIS [ par knetus12 ] salut a tousj'ai un probleme pour faire changer la couleur d'un texte quand la souris passe dessus ca na marche pas pourquoi ??? .ELSEIF uMsg == Problème vrmt étrange [ par Hellbar ] xor eax, eax ; sets eax to 0add eax, 5h ; sets eax to 5hcmp eax, 5h ; is eax equal to 5h ?je ok ; yes ==> jump to "ok"jne not_ok ; no ==> jump to


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales