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

Assembleur Discussion :

Inclure de l'Assembleur dans du Pascal ou obtenir l'interface graphique d'une calculatrice en Assembleur


Sujet :

Assembleur

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Inclure de l'Assembleur dans du Pascal ou obtenir l'interface graphique d'une calculatrice en Assembleur
    Bonjour,
    Je suis étudiant et en première année d'un DUT informatique, je me tourne vers vous, car je ne trouve pas grand chose sur Internet.

    J'ai comme projet de faire une calculatrice en assembleur et de faire l'interface d'une calculatrice qui fonctionne. Y a-t-il un moyen d'intégrer une interface graphique directement en assembleur ? Perso, j'ai eu comme idée de faire une interface graphique sur Lazarus en Pascal (je sais que c'est obsolète, mais j'utilise les moyens que nous donne notre IUT) et d'intégrer l'assembleur directement. Or, je ne sais pas du tout comment faire… Mon professeur m'a parlé d'une fonction « include », mais ne m'a pas donné plus d'information malheureusement.

    Je vous remercie infiniment.

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    ça doit faire le 3 eme projet de calculatrice en assembleur ,ce mois ci que je lis sur divers forum/chat
    A croire que tout les DUT fasse ça , ou que toute votre classe se retrouve sur le net

    L'interface graphique dépend de l'OS ou de la machine cible ,si tu fait ta calculatrice sur MS-DOS , c'est assez limité , a part de refaire toute la GUI à la mano (et là bon courage :p ).
    Si c'est sur PC (Windows ou Linux ) , ben c'est comme en C ,faut faire appel à des lib externes (parce que même si l'asm est "bas niveau" l'OS te bloquera si tu ne passe pas par lui ).

    Sinon include , c'est comme en C , ça inclus un fichier (un header le plus souvent ) ni plus ni moins , donc bon , ça permet pas d'inclure une lib en entier donc
    En asm on inclus quelque fois du code , mais de là d'avoir un code asm qui fasse une GUI entier très probable que tu trouvera

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    ça doit faire le 3 eme projet de calculatrice en assembleur ,ce mois ci que je lis sur divers forum/chat
    A croire que tout les DUT fasse ça , ou que toute votre classe se retrouve sur le net

    L'interface graphique dépend de l'OS ou de la machine cible ,si tu fait ta calculatrice sur MS-DOS , c'est assez limité , a part de refaire toute la GUI à la mano (et là bon courage :p ).
    Si c'est sur PC (Windows ou Linux ) , ben c'est comme en C ,faut faire appel à des lib externes (parce que même si l'asm est "bas niveau" l'OS te bloquera si tu ne passe pas par lui ).

    Sinon include , c'est comme en C , ça inclus un fichier (un header le plus souvent ) ni plus ni moins , donc bon , ça permet pas d'inclure une lib en entier donc
    En asm on inclus quelque fois du code , mais de là d'avoir un code asm qui fasse une GUI entier très probable que tu trouvera
    Je crois que tout les DUT ce sont mis d'accord pour créer des calculatrices
    je te remercie pour ton aide, l'OS que j'utilise est Windows donc pas de problème pour refaire tout le GUI avec mes petits doigts

    J'aimerais avoir + de détaille au niveau du include (comment utiliser cette commande pour inclure mon code en ASM sur des endroits spécifiques de l'interface de ma calculatrice)
    En tout cas merci bcp pour votre réactivité

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Le truc c'est que include ,c'est pas magique. (ça permet juste d'avoir du code plus modulaire )

    Mais ça dépend de ton assembleur , mais un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include "moncode.asm"
    suffit en général :p

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    d'accord je vois ! (je m'excuse je suis complètement novice)
    mais ducoup pour chaque bouton je vais devoir créer un fichier asm afin qu'il traduise cela en ascii ainsi de suite ?
    Et pour les commandes aussi je dois créer un fichier spécifique en asm et l'inclure ?

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Oublie ce que t'as dit ton prof , et comme dit include ,c'est pas magique , ça copie simplement du code , que tu remplace include par un copier/coller ,c'est pareil
    Exemple concret :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include "moncode.asm"
    si "code.asm" contient "mov ax,0",
    Ben ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include "moncode.asm"
    c'est équivalent à :
    Donc non t'es pas obligé d'avoir un bouton pour chaque .asm , tu peux avoir aucun include comme en avoir plein.
    Donc je me répète , l'include ,c'est vraiment plus pour la modularité du code (traduction : pour rendre le code plus ordonné /lisible).

    Bref je le redis , include en asm , c'est exactement pareil que en C , ça ne fait "absolument" rien , juste à éviter de dupliquer le header pour chaque fichier
    (en asm ça peut arriver de le faire sur ldu code, pour avoir plein de fichier .asm plus ordonné )

    Maintenant que le soucis d'linclude est résolu (j'espere) , pour la communication des boutons etc etc , ça dépend plus de la lib que tu utilise , mais faire ça en full asm est pénible parce qu'il y'a les call conventions à prendre en compte (quand on fait un appel de fonction en C ou autre dans de l'asm).

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    je te remercie !!

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Je prend le post en retard mais il faut comprendre que la notion d'include permet de séparer ton code en plusieurs parties ou d'intégrer les prototypes des bibliothèques.

    Tu ne pourras pas intégrer du code assembleur dans du code Pascal avec Include. En C, il faut faire du code inline. Probablement le même système en Pascal (tu peux faire des recherches là-dessus).

    Tu eux créer le code de la GUI en C/Pascal et les fonctions de la calculatrice en assembleur si tu crée une bibliothèque, mais ça va être compliqué pour toi.

    Tu peux aussi utiliser la GUI directement en assembleur en appelant les fonctions du système d'exploitation.
    Un vieux cours là-dessus mais qui doit toujours être valable.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 332
    Points : 4 153
    Points
    4 153
    Par défaut Assembleur & Lazarus
    Bonjour,

    Autant je peux comprendre l'usage de l'assembleur pour les calculs, par exemple travailler rapidement avec des très grands nombres entiers largement au delà des formats natifs, autant cela paraît juste un pénible exercice de style pour l'interface homme machine.

    Les exigences humaines sont de l'ordre du 1/10 s aussi à quoi sert l'assembleur sur ce domaine ?

    Corolairement, à quoi sert un environnement comme Lazarus dans ce cas ? Juste comme éditeur ?

    Je conseillerais plutôt d'utiliser toute les possibilités de Lazarus pour l'interface homme machine (et comme disait Sacha Guitry, "Quand je dis homme, j'embrasse toutes les femmes"). Et je réserverais l'assembleur potentiellement à tous les calculs (une première écriture en Pascal suivie d'une réécriture en assembleur de préférence embarqué) si ce n'est pas suffisamment efficient. Il faut se rappeler que simplement traduire du code de haut niveau en assembleur est inutile : le compilateur est créé pour cela. Mais l'assembleur offre des possibilités qui permettent souvent de repenser le problème parce que les CPU modernes offrent des instructions qui ne sont pas élémentaires (i.e. qui se traduisent en plusieurs lignes de code de haut niveau) et des possibilités qui nécessitent une vue de l'objectif (ce que n'a pas le compilateur), par exemple les prefetch qui permettent de charger des données en avance.

    Il faut savoir aussi que l'assembleur casse la portabilité, même sur des machines avec les mêmes CPU mais des OS différents ou un mode différent. L'empilage des arguments dans les registres changent par exemple selon le mode 32 bits/64 bits et l'OS Windows/Unix.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inclure des .H C dans un prog C++
    Par hitchie dans le forum MFC
    Réponses: 5
    Dernier message: 29/09/2005, 21h24
  2. Inclure un bloc style dans le body
    Par zoullou dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 29/11/2004, 11h00
  3. Inclure de l'ASM dans du C
    Par Condor7 dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 22/05/2004, 14h57
  4. Réponses: 6
    Dernier message: 26/01/2003, 13h45

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