IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Choix d'environnement de développement


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre à l'essai
    Inscrit en
    septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Choix d'environnement de développement
    Salut!!
    Quel est le meilleur environnement de developpement pour developper en Assembleur par Tasm, Masm32,ou autre....... :
    Est ce que pour la programmation en 3D ,Animation graphique 3D,creation de jeu video ou autres...............le langage Assembleur présente des avantages par rapport aux autres ......... :
    Si oui quel est cet environnement de developpement. :
    les amis pour vos conseils précieux .

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 041
    Points : 1 925
    Points
    1 925
    Par défaut
    Bonjour,

    J'avais déjà répondu à cette question en ce qui concerne les IDEs, la réponse est dans la FAQ :

    http://asm.developpez.com/faq/?page=..._comp_ide_list

    Pour résumer, AsmEditor, Radasm, Winasm, chacun ayant ses pros et ses contras... le mieux est de les essayer pour se faire une idée.

    Est ce que pour la programmation en 3D ,Animation graphique 3D,creation de jeu video ou autres le langage Assembleur présente des avantages par rapport aux autres
    Très sincérement, et bien que connaissant (et aimant programmer avec) L'asm x86 depuis des années, j'en doute...

    Les compilos des langages de haut niveaux (HLL) réalisent aujourd'hui des prouesses avec lesquels un humain peut difficilement rivaliser.

    Les seuls intérêt sont sur les routines "hyper critiques" et relativement courte (à vue de nez pas plus de 200 lignes par ci et par là) où l'on peut encore surpasser les compilateurs, en prenant soin d'éviter les branch hints, AGI stalls et en connaissant bien les timings d'instructions, etc.

    Autre points où l'assembleur est, intrinsèquement, le plus adéquat est la programmation de Kernel pour O.S. J'ajouterais aussi les routines SSE 1,2,3, / MMX / XMM / 3Dnow qui sont bien sur plus faciles à programmer en asm qu'en HLL ce qui rejoint ta question concernant le "multimédia" en général.

    Voilà, d'un point de vue général l'asm est un plus, en conjonction avec un HLL, mais surtout pas une fin en soi. Vouloir programmer un programme un peu conséquent tout en Asm est à mon avis un non-sens.

    De plus l'asm ne se résume plus vraiment à connaitre les instructions sur le bout des doigts car avec les nouveaux processeurs il faut ausssi bien connaitre le fonctionnement de ces derniers afin d'en tirer le meilleur parti : que ce soit au niveau des caches (L1 et L2), et la facon d'éviter les pièges => cycle d'instruction, prefetching, prédiction des branches, AGI stalls, alignement du code et des données, etc.

    En somme beaucoup de boulot

  3. #3
    Membre à l'essai
    Inscrit en
    septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Remerciment

    Salut Alors quel est l'intéret du langage Assembleur :
    Quels sont ses possibilités :
    De nos jours,avec les possibilités et les fonctions qu'offrent les langages de Haut Niveau je ne vois pas à quoi ça sert ce langage (Assembleur) de très Bas Niveau :
    Cependant je veux étudier ce langage qui est "ancestral" quand même .
    Lors motive Moi
    Mille Merci tu es un ami Neitsa et a très bientôt

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 041
    Points : 1 925
    Points
    1 925
    Par défaut
    Bonjour,

    Alors quel est l'intéret du langage Assembleur ?
    Pour synthétiser ce que j'ai dis plus haut :

    - Developpement d'O.S
    - Routines critiques
    - Routines utilisant des extensions CPU

    j'ajouterais aussi :

    - interfacage de très bas niveau. Ne pas oublier que le langage assembleur est la dernière forme compréhensible par un humain avant la forme opcode puis binaire.

    On peut par exemple s'interfacer en assembleur avec l'O.S sur des routines très bas niveau qu'il est impossible de produire, même en C.

    Un exemple: je désire créer un programme protégé contre le débugging "sauvage", je peux par exemple faire ceci sous windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mov eax, dword ptr fs:[18h]
    mov eax, dword ptr ds:[eax+30h]
    movzx eax, byte ptr ds:[eax+2]
    jnz debug
    Le code ci-dessus est impossible à réaliser avec un autre langage que l'assembleur.

    On peut utiliser l'assembleur pour plein de chose très bas niveau... à partir du moment ou une instruction est impossible à générer avec un langage HLL.

    en voilà qques unes (X86) : RDTSC, CPUID, ROL, ROR, SIDT, PREFETCHNA, etc.

    Les protections de binaires contre le reverse-engineering sauvage et le cracking utilisent un fort taux de code en assembleur, tout simplement parce qu'on peut faire n'importe quoi (qui reste quand même exécutable) avec lui (obfuscation de code, multiple couche de code, redirection, etc.).

    J'ajouterais aussi qu'une bonne connaissance de l'asm permet de corriger des erreurs très difficilement visible sous un débuggeur "haut niveau". A partir du moment où l'on peut voir le code assembleur et qu'on est capable de le lire naturellement, les erreurs sont souvent détectables rapidement... Toute dépend de la capacité de lecture de celui qui débug.
    Pour ma part, quand j'ai un effet de bord dans un pogramme et que je ne trouve pas rapidement la cause dans mon code source, je débug le programme de facon à trouver d'où peut provenir l'erreur.

    Les possibilités de l'assembleur sont virtuellement aussi grande que n'importe quel autre langage, puisque finalement tout les langages se retrouve interprété par le CPU. Il est ainsi, théoriquement, possible de faire et utiliser des objets ou des "classes" en Asm, pour peu qu'on reprenne le même principe qu'utilise un compilateur pour un HLL (comme pour le C++ par exemple).

    L'Asm n'a pas de frontière, le seul problème c'est que c'est un langage procédural et extrêment lourd au niveau du code. De plus il n'est pas portable.

    Apprendre l'asm c'est comprendre intimement comment fonctionne le processeur cible (X86, ARM, PowerPC, etc.) et incidemment l'O.S. C'est une longue route mais ca vaut le coup si tu es motivé

Discussions similaires

  1. Choix de l'environnement de développement
    Par algoreme dans le forum Débuter
    Réponses: 1
    Dernier message: 15/03/2013, 16h35
  2. Choix d'un environnement de développement
    Par Phoxx dans le forum Débuter
    Réponses: 0
    Dernier message: 28/01/2009, 18h37
  3. choix de techno et d'environnement de développement
    Par Derivatives dans le forum Outils
    Réponses: 1
    Dernier message: 22/05/2008, 09h07
  4. Langage C / Linux / environnement de développement
    Par formatou dans le forum Choisir un environnement de développement
    Réponses: 20
    Dernier message: 09/10/2004, 15h44
  5. L'environnement de développement le plus utilisé
    Par TheDarkLewis dans le forum Windows
    Réponses: 5
    Dernier message: 16/09/2004, 20h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo