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 16-bits Assembleur Discussion :

info pour comparaison


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 29
    Points
    29
    Par défaut info pour comparaison
    Bonjour,

    Est-ce qu'un membre calé en matière de dev ASM et C pourrait me mettre un exemple d'une simple boucle en ASM puis la même en C. C'est pour une comparaison entre langage de bas et de haut niveau à expliquer à des personnes qui ne connaissent pas ce domaine.

    Merci

  2. #2
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    assembleur (le top du top)
    Qbasic (le HLL ficher price)
    C (un truc dans le genre)

    theorème:

    la difference entre l'enseignant et l'eleve, c'est que l'enseignant à un chapitre d'avance.
    mais pour le coup, si c'est toi l'enseignant, il y a du soucis à ce faire, car de nos jours, les eleves ont accès aux mêmes chapitres que le prof, et c'est souvent qu'un prof est largué.

    passe le bonjour à megaman.

  3. #3
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    On peut aussi faire (mais le code automatique est peut-être un peu sale) une traduction du code C en code asm par le compilateur (avec gcc : gcc -S file.c) ou bien désassembler le programme (avec gdb, objdump...).

    L'avantage, c'est de montrer que le code humain est souvent plus simple que le code automatique (bien que cela puisse s'avérer faux pour certaines personnes), et que par conséquent, tu peux inciter tes personnes ne connaissant rien à programmer en ASM (c'est le but recherché ?).

    Mais une boucle ça veut tout et rien dire, il faut être plus précis.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 29
    Points
    29
    Par défaut
    Ah merci a vous !

    Bon j'ai été un peu vague, c'est pour une expo sur d'ancien systèmes pour montrer, en gros, quelles était les difficultés de l'époque. Mettre en avant le fait que l'assembleur était plus répandu qu'aujourd'hui, certes plus complexe à comprendre mais il n'en reste pas moins plus optimisé à condition de savoir s'en servir.

    C'est surtout pour montrer qu'un langage de haut niveau se construit avec des mots qui sont lisibles alors que l'assembler est beaucoup moins intuitif. Donc les résultats que vous me donné ici seront réutilisés lors de cette expo. Avec une explication de texte autour off course


    passe le bonjour à megaman.
    Cette boite de conserve ? Surement pas elle a ruinée mes projets

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 59
    Points : 88
    Points
    88
    Par défaut
    En langage d'assemblage, on peut utiliser les instructions de saut pour construire une boucle mais il existe une instruction adéquate : LOOP. Le bout de code suivant affiche une chaîne ASCIIZ (terminée par un caractère nul) pointée par DS:SI ou, du moins, ses quarante premiers caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
           cld                         ; DF = 0 : incrémentation
           mov    ah,2                 ; Fct 2 du DOS : affiche car.
           mov    cx,40                ; 40 car. maximum
    Affiche:
           lodsb                       ; AL = [DS:SI] et INC SI
           mov    dl,al                ; DL <- AL
           int    21h                  ; Appel DOS (affiche car. en DL)
           or     al,al                ; AL = 0 ?
           loopnz Affiche              ; Boucle tant que CX <> 0 et ZF = 0

  6. #6
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Si c'est pour "prouver" que l'ASM est plus dur à lire qu'un langage de haut niveau,
    il vaut mieux éviter d'utiliser LOOP

  7. #7
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    je dirais meme plus, si c'est pour prouver que l'asm est plus dur à lire et ecrire que les HLL, il faut tout pris eviter de parler de ceux qui ne pigent rien du tout aux HLL, et codent en asm comme ils respirent.

    perso, moi, une ligne de C, ça ne veu rien dire du tout, structure trop chaotique
    syntaxe trop pleine de $%&# pour que ça soit lisible (à l'instar des premiers assembleurs qui ont mené au besoin de HLL).
    à l'ecole, on m'a appris qu'un mot, c'est composé de lettres de l'alphabet, pas de trucs #$*++ voyez vous. et depuis, je n'arrive pas à piger ce que veux dire une ligne de commande unix ou de code HLL

Discussions similaires

  1. Comparaison et récupération d'info pour insertion
    Par Flash31186 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 07/07/2010, 12h58
  2. [applet]utilser des infos pour les traiter dans une servlet
    Par jeromejanson dans le forum Applets
    Réponses: 5
    Dernier message: 07/03/2010, 23h22
  3. Demande infos pour développer un plugin
    Par alexge dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 10/05/2006, 15h13

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