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 :

Réalisation d'une calculatrice graphique en assembleur IA32


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Points : 20
    Points
    20
    Par défaut Réalisation d'une calculatrice graphique en assembleur IA32
    Bonjour tout le monde, j'ai pour projet de programmer une calculatrice graphique en utilisant le langage assembleur et à l'aide de RadASM. Le plan du projet

    est le suivant : * Programation d’une calculatrice graphique en utilisant le langage assembleur masm32 et radasm

    * Resolution des problemes mathematiques (calcul usuel , fonction , derivé ….)

    * Les interruptions avec les périphériques d’entres sortie

    * Une interface graphiques calculatrice

    Il serait parfait si vous pourriez m'envoyer cette calculatrice, déjà programmée (le langage assembleur masm32 et radasm), pour que j'aie une idée de base et

    que je puisse voir et comprendre ce que je dois faire, ça me ferait gagner énormément de temps. Sinon, j'aimerais tant que vous me donniez des instructions

    ou des conseils à suivre (le minimum de connaissances que je dois avoir), que ce soit des langages informatiques, logiciels, des livres à lire, ou des sites

    internet...

    Pour le moment, j'ai appris la base du langage assembleur, mais quant au graphisme, je n'en ai pas la moindre idée.

    Je vous remercie infiniment

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 409
    Points : 23 804
    Points
    23 804
    Par défaut
    Bonjour,

    L'assembleur est le jeu d'instructions du micro-processeur que tu utilises : Il n'y a pas un langage assembleur universel mais un par famille de micro-processeurs. Merci de lire ce qui suit et de nous donner tous les détails demandés : http://www.developpez.net/forums/d73...ire-sharp8592/

    Ensuite, il n'y aucune instruction « système » par défaut en assembleur, puisqu'il s'agit là de piloter ta machine et que ça dépend donc à la fois de l'ordinateur dans lequel est installé le micro-processeur que tu utilises et du système d'exploitation qui l'équipe. Tu ne trouveras donc aucune commande du style « OuvreFenetre ». Par contre, tu auras pléthore d'instructions pour lire des données en mémoire, faire des transformations dessus et les réécrire ailleurs.

    Pour le reste, faire des mathématiques en assembleur peut être passionnant : les logiciels internes de mes vieux huit bits étaient écrits intégralement en assembleur (et ça se voit), et je suis en train de voir comment les fonctions usuelles étaient mises en œuvre. Il y a des quotients polynomiaux sur des nombres à virgules flottante et des ajustements sur le paramètre d'entrée pour le rapprocher du zéro. L'assembleur est très pratique pour les calculs arithmétiques parce qu'il est le plus indiqué pour la manipulation de bits et le décalage de chiffres. Par contre, c'est à mille lieues d'être indiqué aux débutants : il faut avoir beaucoup de pratique et un certain goût pour la chose.

    Tu peux alors te rabattre sur des bibliothèques mathématiques existante et/ou sur le coprocesseur. Mais comme ces bibliothèques sont majoritairement écrites en C, il faudra au préalable apprendre à invoquer une fonction de ton système.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    bonjour, je vous remercie d'abord de m'avoir répondu, Pour mon ordinateur, c'est un Compaq CQ60, windows 7, processeur AMD, et je travaille sur un assembleur 80386 32 bits, et sachant que je dois faire cette calculatrice en utilisant masm32 et radasm, je voudrais savoir si la calculatrice, après qu'elle soit conçue sur ma machine, marchera sur toutes les autres machines quel que soit le système d'exploitation et la famille du processeur? Et je vous serais reconnaissant si vous pourriez me conseiller des références/sources concernant l'apprentissage du graphisme.

  4. #4
    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
    Bonjour,

    C'est un projet ENORME !
    déjà le faire dans un langage évolué ce n'est pas à la portée du premier
    venu, mais à faire en assembleur

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 409
    Points : 23 804
    Points
    23 804
    Par défaut
    Bonsoir,

    Citation Envoyé par yagami-psychiatre Voir le message
    bonjour, je vous remercie d'abord de m'avoir répondu,
    C'est avec plaisir mais Forthman a raison : si tu n'as jamais vu l'assembleur auparavant et que tu te lances à corps perdu dans l'écriture d'une calculatrice dans laquelle tu dois mettre toi-même en œuvre à la fois les mathématiques sous-jacentes et le rendu graphique de l'interface utilisateur, prévois au minimum une année de travail.

    Pour mon ordinateur, c'est un Compaq CQ60, windows 7, processeur AMD, et je travaille sur un assembleur 80386 32 bits,
    Donc un PC 32 bits. Ok.

    Par contre, ton processeur est beaucoup plus qu'un 80386 : si j'en crois la fiche technique de ton ordinateur, il s'agirait d'un Sempron, donc un micro-processeur récent, capable de faire du 64 bits et au minimum i686 en 32 bits, donc.

    et sachant que je dois faire cette calculatrice en utilisant masm32 et radasm, je voudrais savoir si la calculatrice, après qu'elle soit conçue sur ma machine, marchera sur toutes les autres machines quel que soit le système d'exploitation et la famille du processeur?
    Non, malheureusement, loin de là. Elle ne marchera que sur le type de machine pour lequel elle a été conçue.

    Elle marchera sur tous les PC 32 ou 64 bits sous Windows (quelle que soit sa version pourvu qu'elle ne soit pas trop ancienne) et équipés d'un processeur compatible x86 (formellement Intel et AMD).

    Elle ne fonctionnera pas sur Mac, elle ne fonctionnera pas sous Linux, elle ne fonctionnera pas non plus sur les microprocesseurs ARM et ce même si Windows est installé dessus (car il s'agira d'une version de Windows recompilée exprès pour cette architecture).

    Il se peut en revanche qu'elle puisse être utilisable sur tous systèmes d'exploitation fonctionnant sur x86 à condition qu'elle soit conçue pour se restreindre à un espace mémoire transmis au préalable par un autre programme, et que ce soit ce même programme qui récupère le résultat et fasse le rendu graphique.

    Et je vous serais reconnaissant si vous pourriez me conseiller des références/sources concernant l'apprentissage du graphisme.
    Il n'y a rien, en assembleur, qui soit spécialement lié au graphisme. Si tu travailles sous Windows, c'est au système d'exploitation qu'il va falloir demander de te créer une fenêtre et des boutons, et cela se fait en appelant son interface.

    Seulement, contrairement à D.O.S. qui était majoritairement exploité à travers sa fameuse « interruption 21h », Windows, Linux et la majorité des autres systèmes sont faits pour être exploités via leurs API, écrites en C et appelées depuis le même langage.

    Il faudra donc, à chaque fois, reconstruire l'appel en question et récupérer son résultat. Cela consiste essentiellement à placer tous les paramètres de la fonction à appeler dans la pile, dans un ordre précis, puis à faire un CALL vers cette fonction. Heureusement, il existe une macro pour faire cela pour toi : « INVOKE ». Seulement, si ces fonctions attendent des paramètres sophistiqués, comme une structure, il faudra également l'initialiser proprement et cela va devenir très rébarbatif.

    Le meilleur conseil que je puisse te donner est donc de commencer par le premier pas de tous les langages : écrire un « hello world » à l'écran en assembleur. Une fois que tu auras réussi à faire cela, tu passeras à la phase suivante.

    Le second pas consiste à réaliser en assembleur une routine qui émule une simple calculatrice quatre opérations en recevant les paramètres de l'extérieur. Tu vas vite te rendre compte que rien que faire cela est très compliqué en soi si tu ne t'appuies pas sur le coprocesseur mathématique. Il te faudra gérer les nombres à virgule flottante à la main et implémenter les algorithmes de calcul.

    Tu peux faire une recherche avec « CORDIC » ainsi que les séries de Taylor si tu veux voir comment on arrive à ses fins d'un point de vue théorique lorsque l'on conçoit un calculateur depuis zéro.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/11/2011, 10h51
  2. Réalisation d'une interface graphique
    Par drunkskater dans le forum Caml
    Réponses: 3
    Dernier message: 22/12/2010, 00h32
  3. [Dev-Pascal] [Débutant] Réalisation d'une calculatrice
    Par bababam dans le forum Autres IDE
    Réponses: 14
    Dernier message: 06/01/2010, 14h43
  4. Réalisation d'une calculatrice scientifique
    Par diden138 dans le forum Pascal
    Réponses: 7
    Dernier message: 22/05/2006, 12h45
  5. Aide à la réalisation d'une calculatrice en C
    Par Premium dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 17/11/2005, 17h52

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