begin process at 2008 09 06 09:05:54
1 237 663 membres
60 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OBTENIR LA VERSION DU SYSTEME,SON ENVIRONNEMENT,LE SERVICE PACK ET AURES ...


Information sur la source

Description


C'est une traduction conforme (masm32) d'un exemple du SDK utilisant
OSVERSIONINFOEX
                     ToutEnmasm
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de BruNews le 08/12/2006 17:39:45 administrateur CS

    Traduction à la "asm VB" mais assurément pas du code qui serait passé dans un compilo C correct.
    Le jour où mon compilo me fera des appels lstrcat, il prend la poubelle illico.
    Il y a des registres à employer, mets EDI en fin de chaine et tu écrsi dessus, tu recup ainsi ton EDI toujours au point d'écriture sans reparcourir 50 fois la meme chaine.
    invoke lstrcat,addr phrase,addr espace
    là c'est le bouquet, non ?
    mov byte ptr[edi], 32
    add edi, 1
    voila remplacé appel strcat...
    Sérieux, l'asm est le domaine de l'optimisation maximale, en faire un sous VB n'avance à rien.

  • signaler à un administrateur
    Commentaire de ToutEnMasm le 09/12/2006 09:57:01


    Rappelle moi le prix de Visual studio,pour voir !?
    Si tu veux optimiser le code,aucun problème,tu as le source,bon boulot.
                       ToutEnMasm
                      

  • signaler à un administrateur
    Commentaire de ToutEnMasm le 09/12/2006 18:14:55


    Cest bientôt Noël,Je vais te faire un petit cadeau.
    pour optimser le code utiliser la fonction comme suit
    1) créer une locale pointeur
    2) ranger l'adresse de phrase dans pointeur
    ;début des tests
    lea eax,phrase
    mov pointeur,eax
    PuPo case,osvi.dwPlatformId
    .if case == VER_PLATFORM_WIN32_NT
    3) remplacer tous les lstrcat par la fonction ConcaTene
    invoke ConcaTene,pointeur,SADR("Microsoft Windows Server 2003, "),addr pointeur

                   ToutEnMasm
    ;additionne deux chaines terminées par zero
    ;renvoi le pointeur en bout de chaine écrite dans  padresse
    ;################################################################
    ConcaTene PROC uses esi edi szSomme:DWORD, szAdd:DWORD ,padresse:DWORD
    Local  retour:DWORD
             mov retour,0
    ;éviter un planté toujours néfaste
    .if szSomme == 0 || szAdd == 0 || padresse == 0
    jmp FindeConcaTene
    .endif
    mov esi,szAdd
    mov edi,szSomme
    cld
    .LISTALL
    @@:
    .if byte ptr [edi] != 0 ;debut de chaine a augmenter
    ;aller en bout de chaine
    inc edi
    jmp @B
    .endif
    @@:
    .NOLIST
    .if byte ptr [esi] != 0
    ;recopier
    movsb
    jmp @B
    .endif
    mov al,0
    mov [edi],al
    ;sauvegarder le pointeur de fin
    mov esi,padresse
    mov [esi],edi
    mov retour,1

    FindeConcaTene:
             mov eax,retour
             ret
    ConcaTene endp












  • signaler à un administrateur
    Commentaire de frobinet le 11/12/2006 10:03:22

    Encore une remarque inconstructive de la part de BruNews comme toujours...
    Petit parenthèse ce forum à pour but de faire découvrir l'assembleur et de faire avancer les choses pas de critiquer tous les codes en faisant croire que tu es capable de faire mieux.
    Tu écrase la créativité de ce forum et à la lecture de tes remarques ça ne donne pas du tout envie de poster la moindre source. Je me suis mis à l'assembleur il y a de ça trois ans et c'est grâce a des personnes comme Iczelion, ToutEnMasm ... que j'ai bien avancé et maintenant MASM32 est pratiquement mon seul logiciel de programmation (même si j'ai la chance par mon travail d'être abonnée à MSDN Architecte).
    Un tutoriel ou un programme mis sur un forum n'est pas une solutioon clé en main mais une aide à la réflexion il faut donc qu'il soit avant tout lisible sinon ça repousse les débutant et ça favorise le copier coller totalement idiot.

  • signaler à un administrateur
    Commentaire de BruNews le 11/12/2006 21:18:22 administrateur CS

    C'est inconstructif de dire ce qui ne va pas ??? c'est nouveau ça.
    Ecraser la créativité... je fais dans le binaire pas dans la psy donc je passe.

    3 ans que tu fais du sabir masm en obtenant 3 fois moins efficace qu'un compilo C en ayant mis 4 fois plus de temps que codé en C, si ça te convient c'est ok mais les débutants avec un tant soit peu d'ambition doivent savoir que c'est mauvais et pour cela encore faut-il que qlq'un l'ait écrit.

    if osvi.dwPlatformId == x
    4 fois de suite, bien entendu que j'aurais aussi pu l'évoquer mais je m'étais pourtant abstenu:
    cmp  [adr], valeur
    jb goINF
    je goEQU
    ici traitement goSUP

    ben oui mais pour cela faut coder vraiment.
    Dans tous les cas si tu ne veux pas progresser ne lis pas les comments et basta.
    Je note que ToutEnMasm a lui par contre essayé d'en proposer une amélioration et c'est heureux ainsi.

  • signaler à un administrateur
    Commentaire de vecchio56 le 11/12/2006 21:34:52 administrateur CS

    ToutEnMasm, si la raison qui t'oblige a coder en "assembleur" est le prix trop élevé des IDE pour C/C++, je pense que tu te fourvoies lamentablement
    Evidemment MinGW est gratuit, mais aussi depuis peu (enfin pas mal de temps quand même maintenant), le compilateur de VC++ est gratuit, et tu pourra l'utiliser avec une version express de Visual Studio.

    Même remarque que BruNews concernant les débutants, aucun intérêt de commencer l'assembleur de cette manière

    Finalement, je ne vois pas non plus ce qui justifie de style de programmation

  • signaler à un administrateur
    Commentaire de frobinet le 12/12/2006 11:02:51

    Désolé de mettre mal exprimé, ce que je voulais dire c'est que je n'apprécie plus la teneur des remarques DESAGREABLES qu'utilise sans arrêt BruNews lorsqu'il laisse une remarque sur le site. Je ne critique pas le fait que le code n'est  pas optimisé, je ne l'ai même pas lu et ça ne m'interresse pas (c'était le seul code de la semaine, c'est de la curosité c'est tout!!!).

    En outre, sur un code aussi simple je suis moins regardant du point de vus otpimisation que pour un code demandant des ressources importantes (Cryptographie, 3D..). Mais encore une fois on peut faire une remarque d'optimisation sans non plus avoir une démarche aussi agressive.

    De plus, on est sur un site assembleur, on n'a pas à critiquer le choix des personnes qui programment en assembleur. "Le C/C++ est mieux y en a qui sont gratuit (MingGW, VC++, LCC, SDCC...)", et alors je ne vois pas ce que cette remarque viens faire sur un site assembleur. Je ne vais pas sur un site VB pour dire que je trouve nul ceux qui programme avec ça, c'est leur choix (c'est même quelque fois imposé par le travail, et alors ?). Si vous ne pouvez plus vous passer du C/C++ y a un site qui est fais pour vous "www.cppfrance.com". ça aussi c'est récurent dans vos remarques et je ne vois vraiement pas en quoi ça fais avancé le codage en assembleur.

    ça fais trois ans que je programme en MASM mais l'assembleur je l'utilise depuis plus de quinze ans pour les microcontroleurs (512 octets pour faire tenir un programme, le mieux c'est l'assembleur). Bien sûr que j'utilise le C++ comme tous programmeurs mais si j'ai envie de faire de l'assembleur j'ai peut être le droit ou faut-il que je vous fasse une demande ?

    "Ecraser la créativité... je fais dans le binaire pas dans la psy donc je passe." bah non justement c'est ça le problème, si les programmeurs ne laissent pas de codes sur le sites car ils savent que c'est pour ce faire rembarrer, je ne vois plus l'interet du site.

    Allez voir d'autres forum de programations assembleur, vous verrez que les aides apporté sont beaucoup plus motivants. J'ai lu par exemple avec grand plaisirs des batailles entre programmeurs sur des optimisations différentes entre AMD et INTEL qui donnent vraiement envie d'aller plus loin.

    "Finalement, je ne vois pas non plus ce qui justifie ce style de programmation" Désolé ce n'était pas en relation avec la news c'était pour passer un message à BruNews c'est tout !



  • signaler à un administrateur
    Commentaire de ToutEnMasm le 12/12/2006 14:59:22


    Salut,

    Il faut reconnaitre qu'un forum qui incite a venir poster des sources est plus vivant qu'un forum ou les gens s'invectivent ou croient tout savoir.
    Petite citation d'un pro de l'assembleur (traduction de l'anglais).
    "l'assembleur est le langage ou on est un éternel débutant".
              
                             ToutEnMasm





  • signaler à un administrateur
    Commentaire de ToutEnMasm le 12/12/2006 15:10:41


    J'allais oublier,
    Pour le style,la raison en est que je suis un artiste "du copier coller."
    Faire en 10 mn ce que les autres font un temps certain est le but de mon IDE,c'est ce qui donne ce style.
                              ToutEnMasm

  • signaler à un administrateur
    Commentaire de BruNews le 12/12/2006 19:44:03 administrateur CS

    Bon remettons tout à plat.
    Faut pas s'arrêter au style du commentaire mais à ce qui est dit techniquement, il est bien clair que je n'ai envie d'agresser personne. Le manque de temps fait que je rédige concis voila tout.
    Ce n'est pas moi qui vais dire qu'il ne faut plus coder en asm, je suis payé pour cela, alors...
    Par contre tout ce que je produis doit être vérifié comme meilleur que ce qu'aurait produit le compilo, à cette fin que je fais toujours les fonctions en C et que je regarde le listing asm obtenu. Si ça me semble nickel ça reste en l'état (c'est rare mais ça arrive) mais sinon quand on code on code vraiment.
    Qlq'un peut-il croire qu'une boite emploiera au tarif qu'on demande pour produire en asm si elle obtient mieux avec un mec qui codera en C pour moins cher ?
    Je répète que coder en asm à notre époque n'a plus d'autre sens qu'obtenir les perfs maximales et c'est le seul but à avoir. Qu'un exemple de source ne semble pas le nécessiter ne change en rien le propos, on publie dans un but pédagogique et on se doit donc de faire au mieux. Le meilleur challenger qu'on puisse avoir étant un compilo C, par force on doit comparer au compilo.

  • signaler à un administrateur
    Commentaire de ToutEnMasm le 13/12/2006 09:35:21


    Une petite contribution sur l'ambiance dans les forums permettant une utile comparaison des points de vues de chacun.
    C'est le même code qu'içi(commentaires en anglais mais sur un forum US.
    http://www.manoscoder.gr/mbbs/forums/thread-view.asp?tid=53&posts=8&start=1

                        ToutEnMasm

  • signaler à un administrateur
    Commentaire de frobinet le 13/12/2006 12:35:21

    Juste pour finir je voudrai résumé qu'il est souhaitable que les personnes qui s'exprime sur un forum quelqu'ils soient le fasse sans reflexion qui peuve être blaissante ou finir par être saoulante.

    Et je voulais juste signaler que même si il est évident que tu ne trouvera jamais dans mes codes "invoke lstrcat,addr phrase,addr espace" je préfère souvant prendre le risque de la lisibilité par rapport à la performance pur (par exemple j'utilise pas mal les .WHILE et autres cochonneries je te l'accorde) car pour mon entreprise il est important qu'une autre personne puisse me relire (en plus a part mon chef qui programme à longueur de journée en asm NEC, rien que le mot assembleur fait fuir le reste de mes collègues, ça aide pas).

    Juste pour anecdote j'ai galéré et je n'ai d'ailleur toujours pas trouvé la solution sur la création d'un ActiveX qui me renverrai un évènement, la seule source que j'ai trouvé est une source qui est infesté de MACRO à tout vas avec une refonte vulgaire de tous les includes (mixage entre C et ASM) qui posent des problèmes de compatibilité avec la version ml que j'utilise et en plus le programme est buggé, après plus d'une semaine à essayé de décortiqué le programme j'ai finis par le mettre à la poubelle, il faut quand même que quand on poste une source de cette nature il faut que ce soit digeste car si seul les spécialistes peuvent le comprendre, ça sert à rien.
    Je suis venu à MASM par envie pas par nécessité, on peut avoir des avis différents car des besoins différents.

    "l'assembleur est le langage où on est un éternel débutant" je pense que l'on peut l'élargir à toute l'informatique et à l'électronique. Tantôt professeur, tantôt élève.

    Il est vrai que je me suis emporté pour une remarque toute a fais justifié et je m'en excuse, aller BON NOEL à TOUS !

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS