Accueil > Forum > > > > Labels, macros et répétitions
Labels, macros et répétitions
vendredi 30 novembre 2007 à 20:27:42 |
Labels, macros et répétitions

samsamX
|
Bonjour à tous !  Je programme en asm depuis 3 semaines seulement, mais j'ai déjà eu le temps de voir quelques trucs... Etme voici confronté à mon premier gros problème : Je cherche à faire un librairie graphique 2D pour fasm (qui s'appellera 2D4Fasm), pour cela j'ai fait des macros: -verticale -horizontale -pixel -rect vide -rect plein ... et... -LIGNE L'algo pour dessiner une ligne oblique en asm est au point ^^, c'est celui de Bresenhams un seul problème, c'est une M-A-C-R-O !!! et j'ai des labels, donc quand je dessine 2 lignes, ca bug ! -> symbol already defined... Et oui... on ne peut pas mettre deux labels identiques...  mes questions :  Ais-je bien fais d'utiliser des macros pour un librairie ?  Comment éviter le problème des labels ?  Aimez vous les bananes ?  Quelle est la marque de votre voiture ?  D'autres librairies éxistent-elles déjà ? Merci d'avance ----------------- only Rock'n'Roll -----------------
|
|
lundi 3 décembre 2007 à 09:34:49 |
Re : Labels, macros et répétitions

_dune2_
|
Réponse acceptée !
Salut,
je sais qu'en assembleur GAS (Gnu ASsembler), il y a une syntaxe pour nommer les labels de manière générique, ex :
jmp 1f # sauter vers le 1er label "1" "forward" -> en avant :1 jmp 1b # sauter vers le 1er label "1" "backward" -> en arrière
Et le fait d'utiliser cette notation de la label (uniquement des numéros suffixés de "f" ou de "b") permet donc d'utiliser des labels dans des macros, car le compilo sait à quel label tu fais référence.
Ce n'est pas une réponse car je ne connais pas fasm, mais une piste sur la manière dont fasm pourrait l'implémenter.
Gentoo... que du bonheur ...
|
|
lundi 3 décembre 2007 à 11:29:06 |
Re : Labels, macros et répétitions

ToutEnMasm
|
Salut, Ce genre de librairie existe déja,voir GDI.
Pour créer une librairie,on est obliger de passer par des fonctions pouvant utiliser des macros.
|
|
lundi 3 décembre 2007 à 16:22:57 |
Re : Labels, macros et répétitions

samsamX
|
J'ai trouvé une solution potable,
> fichier.asm > ... > ... > line 20,30,20,30,128 > ... > > > macros.inc > ... > macro line x1,y1,x2,y2,color > push x1 > push y1 > push x2 > push y2 > push color > call drawLine > > > fichier2.asm > ... > ... > drawLine proc near < <mon code> > endp > ...
Après, faut voir si ca marche
Et j'ai un autre pb : > push al > pop al Ca génère un bug, parceque pop m'envoie deux bits (faible ET fort) comment puis-je récupérer UNIQUEMENT le bit de poids faible avec pop ?
----------------- only Rock'n'Roll -----------------
|
|
lundi 3 décembre 2007 à 18:08:05 |
Re : Labels, macros et répétitions

_dune2_
|
salut,
ha ouai .. ben moi j'ai encore plus optimisé que vous !
drawline(x1,y1,x2,y2,color);
... c'est plus simple à écrire, aussi rapide ... et bien plus lisible ....
Gentoo... que du bonheur ...
|
|
mercredi 5 décembre 2007 à 01:03:48 |
Re : Labels, macros et répétitions

samsamX
|
nimportnawak !! Au lieu de me dire que ton système est mieux, lit mes messages... "> fichier.asm > ... > ... > line 20,30,20,30,128 > ..." C'est le code de l'utisiateur ca, donc je pense que drawline(x1,y1,x2,y2,color); et line x1,y1,x2,y2,color sont aussi simples et lisibles  J'ai trouvé les réponses a mes problèmes, merci ----------------- only Rock'n'Roll -----------------
|
|
mercredi 5 décembre 2007 à 09:35:05 |
Re : Labels, macros et répétitions

_dune2_
|
salut,
Ce que je voulais juste dire en te mettant que j'avais une fonction qui allait aussi vite, c'est que faire de l'assembleur : > macro line x1,y1,x2,y2,color > push x1 > push y1 > push x2 > push y2 > push color > call drawLine pour appeler une fonction du gdi32, ... autant faire du C pour une meilleure lisibilité ... d'où mon "drawline(x1,y1,x2,y2,color);".
Je pense que dans bien des cas, l'utilisation de l'assembleur à outrance n'est pas une solution efficace. D'une part car on se substitut au rôle du compilateur C, et on passe donc à coté de tas d'optimisations que le compilateur C connait bien mieux que nous ! Et d'une autre part, car la relecture du code est bien plus exigente et le risque d'erreur bien plus grand !
L'utilisation d'assembleur inline est à mon avis, aujourd'hui, le meilleur moyen de tirer le maximum du compilo C pour ce qui est des appels de fonctions standards, et de l'assembleur pour les parties critiques uniquement. De cette manière, le code reste facilement lisible et débuggable, tout en conservant des parties de forte optimisation ASM là où le compilo n'aurait pas fait le bon choix (instructions SIMD, astuce de codage, streaming ... etc). C'est pourquoi je me suis un emporté au vu de la macro qui réalise un simple appel à la fonction "drawline", quelle est la raison du choix du langage assembleur ??
Gentoo... que du bonheur ...
|
|
mercredi 5 décembre 2007 à 20:16:31 |
Re : Labels, macros et répétitions

samsamX
|
Pourquoi l'assembleur et pas le C ??? aaaaaaaaaaaaaaaaaah !! ^^ Quatres raisons : - J'ai des projets à faire en asm, et en asm UNIQUEMENT ! - C'est un très bon language pour développer des algorithme (complexe, certes, mais j'aime ca ^^) - C'est un language que tout bon informaticien se doit de connaitre (puisqu'il est la base de la programmation), et je voudrais précisément devenir programmeur-développeur - Du C ??? Ben... j'en fait déjà ^^ Je m'intéresse à pas mal de languages, et j'en vois d'autres encore à l'IUT... En ce moment je maitrise parfaitement le Basic Casio, le MLC (language Casio/TI), je maitrise plutôt bien le C/C++, et j'apprend l'asm 80x86, le Java, (le XHTML et le CSS si on peut appeler ca des languages), le BrainFuck, le PHP et le SQL !!! En plus, on voit le fonctionnement de la console Linux (ce qui n'est pas rien) et la méthode MERISE (qui est notre plus gros module) Comme on n'a pas tant de temps que cela en cours, on passe plutot vite sur certains languages... Donc j'en apprend plus chez moi encore, pour parfaire ma culture !  Et même si certaines choses ne me serviront plus après, c'est toujours sympa de découvrir ^^ L'union de l'asm et du C m'était inconnue par exemple, tu m'apprend qqchose la... je regarderais cela de plus près. ----------------- only Rock'n'Roll -----------------
|
|
mercredi 5 décembre 2007 à 22:44:13 |
Re : Labels, macros et répétitions

_dune2_
|
re,
"L'union de l'asm et du C m'était inconnue par exemple, tu m'apprend qqchose la... je regarderais cela de plus près."
J'en apprends moi aussi tous les jours encore ;) c'est comme cela qu'on progresse ;)
Pour parler un peu de l'asm inline, l'interêt est d'avoir la simplicité du C (ou C++) pour le "main" ainsi que les appels classique de printf et autres fonctions courantes de la stdlib. Et de pouvoir se concentrer là où l'assembleur prend tout son interêt. Ainsi, on apprend beaucoup plus de choses interessantes que de choses rébarbatives ;)
ex :
toto.c :
#include <stdlib.h>
#define DATA_SIZE 256
int main(int argc, char **argv) { unsigned char A[DATA_SIZE]; unsigned char R[DATA_SIZE]; unsigned char G[DATA_SIZE]; unsigned char B[DATA_SIZE]; unsigned int ARGB[DATA_SIZE];
// conversion du buffer ARGBARGB.. en 4 buffer AA.. , RR.., GG.., BB.. _asm { ... là tu mets ton code asm pour la conversion ... }
return 0; }
-> bilan, seule la fonction réalisant la conversion sera en asm, ce qui rend ton programme facilement lisible car la partie interessante n'est pas noyé dans dans le code assembleur du "return" ou du "main" voir d'autres fonctions si y-a ...
Gentoo... que du bonheur ...
|
|
Cette discussion est classée dans : problème, asm, macros, labels, répétitions
Répondre à ce message
Sujets en rapport avec ce message
Question Asm/C++ [ par Lelys ]
Bonjour,Je voudrai faire un OS, mais le problème c'est que je ne m'en sort pas en ASM...Je suis plus allese en C/C++.Mais le problème est que les syst
problème d'horloge [ par gctom ]
bonjour a tousje vous expose mon problème :je dois réaliser uen horloge qui permet d'afficher l'heure la date et autre chose.ceci étant fait je passe
appeller du C en asm [ par S2R ]
Bonjour, je voudrait savoir comment utiliser un code écrit en C dans un code assembleur.
Utilisation de printf avec compilo GCC [ par MattXSFR ]
J'ai un petit problème assez étrange, et j'arrive pas à le résoudre.J'ai fait un programme en ASM syntaxe GNU qui utilise la fonction printf pour affi
Compilateur ASM !!! [ par WaFFel ]
Bonjour !en fin de compte c`est pas vraiment un question sur un code source mais plustot c`est parce que je cherche un compilateur ASM(titre du post)
J'ai un problème de "object not previously defined" [ par subaruwrc2004 ]
Bonjour, dans mon code source j'ai cette ligne -> btfsc STATUS,c ;Quand je compile, l'erreur suivante m'apparait-> Error[113] D:\PROJET ELECTRO\AIRF
Problème avec le org sous nasm [ par dodo76 ]
je développe un prog sous nasm pour le mettre ensuite dans une eprom. Je veux que le programme commence à l'adresse 0XFFF0. En début de prog, je mets
Comment programmer l'ASM? [ par Tioneb ]
Salut,je programme en VB et l'ASM (sous windows) m'interresse; mais je n'y connait pas grand chose! Si quelqu'un pouvait me dire avec quel logiciel on
problème avec PIC et PLL [ par lionel57 ]
Bonjour,Est-ce que quelqu'un saurait comment gérer la PLL LMX2306 grace à un PIC16F628.J'ait réussie à faire les initialisations mais il me reste le d
Aide nombre en asm 8086 16 bits [ par Maureka ]
je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|