Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Algorithme de Bresenham
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#21 Message par paulfjujo » mar. 1 nov. 2022 11:47

bonjour Temps-X et à tous

Je suis du meme avis que Claudius

Claudius a écrit : Comme quoi, avant d'envisager un portage, il est impératif de valider d'une manière exhaustive l'algorithme
et en général dans un langage évolué indépendamment de tout périphérique; ici un écran remplacé par une
console texte permettant de vérifier au pixel près ;-)


ayant aussi moi même utilisé une sortie terminal texte
pour par exemple , verifier/ afficher des fontes de caracteres ..
c'est tres pratique .. sans connaitre sur quel LCD /ecran où on va l'afficher.

on peut utilise aussi , du "pseudo code" pour décrire un algorithme
Un pseudo-code (également appelé LDA pour Langage de Description d'Algorithmes) fait référence à une syntaxe ressemblant à un code,
généralement utilisée pour indiquer aux humains le fonctionnement d'une syntaxe de code ou pour illustrer la conception d'un élément
d'architecture de code

Temps-X a écrit ::sifflotte: on se retrouve encore une fois de plus avec un code C en section ASM, j'ai rien contre le C,
mais quand même ça commence à devenir ennuyeux.


:sifflotte: ..sachant que tu te sert de Basic aussi !

.. l'usage de macro, est une forme aussi d'évolution de langage .. qui n'est plus de l'ASM pur et dur .

Ce n'est pas marcher sur tes plates-bandes !
car le sujet de ton post : Algorithme de Bresenham , est un sujet générique adaptable pour
TOUS les systemes de programmation
y compris , le C.

idea ! D'ailleurs ce genre de post devrait être dans une section HORS LANGAGE
histoire de ne pas froisser les esprits.

:-D FANTASPIC site de partage et entraide !
Aide toi, le ciel ou FantasPic t'aidera

Algorithme de Bresenham
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#22 Message par Temps-x » mar. 1 nov. 2022 12:43

Bonjour paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message Je suis du même avis que Claudius

:sifflotte: décidément, on se comprends vraiment pas, j'ai déjà testé sur PC en Basic, j'ai pas besoin de passer par un terminal ...

L'algorithme du cercle en basic fonctionne, je tiens à le préciser encore une fois de plus.

paulfjujo a écrit :Source du message :sifflotte: ..sachant que tu te sert de Basic aussi !

Je m'attendais à l'entendre celle là.... :-D

Ce qui est demandé, transformé le code basic en ASM

:sifflotte: un volontaire....

paulfjujo a écrit :Source du message idea ! D'ailleurs ce genre de post devrait être dans une section HORS LANGAGE


:roll: C'est une bonne idée, je valide..

Hors langage, peut être pas, participation avec tout les langages qui se rapporte au pic sur les différentes algorithme existent sans dérivé

Il y en a un paquet... il y a de quoi s’occuper.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Algorithme de Bresenham
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#23 Message par satinas » mar. 1 nov. 2022 12:56

Bonjour à tous

Paul je ne vois pas en quoi un macro-assembleur n'est pas un assembleur. L'assembleur est un programme et un langage d'assemblage destinés à écrire du code machine lisible directement pas le processeur. Le fait de simplifier la saisie en dupliquant des parties de texte ne change rien à l'affaire.

Temps-x as-tu un lien sur l'algorithme cercle que tu veux passer en assembleur ?
D'accord avec toi, s'il y a erreur on le voit tout de suite à l'écran. Par contre je me souviens quand je travaillais la dessus, avoir mis la cam microscope usb pour filmer le lcd et vérifier la tête des cercles de petits rayons, R= 0, 1, 2, ... Rapport à la vue qui baisse :)

Algorithme de Bresenham
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#24 Message par Temps-x » mar. 1 nov. 2022 13:07

Bonjour satinas,

Je suis l'auteur du programme écrit en basic, donc le seule lien c'est en Post #17

Quand on teste en mode écran 320x200 pas besoin de loupe, on vois tout de suite les problèmes, surtout avec un écran 17 pouces.

==> A+
Modifié en dernier par Temps-x le mar. 1 nov. 2022 20:16, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Algorithme de Bresenham
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#25 Message par Temps-x » mar. 1 nov. 2022 13:21

Re

Code basic traduit en ASM pour cercle le départ

Code : Tout sélectionner


cercle
                                          
; xc = 64: yc = 32: Rayon = 25: Couleur = 12                
      clrf diametre
+0
      clrf diametre
+1  

      clrf tmps
+0
      clrf tmps
+1

      clrf x                              
; x = 0 

      movlw D
'2'                          ; (echelle) 2 = longueur oled(128)/ hauteur oled(64)  
      movwf echelle                       
;

      movf rayon,W                        ; y = Rayon
      movwf y
                                          
; 
      movf rayon
,W                        ; 1 - rayon
      sublw D
'1'                          ; 
      movwf diametre
+0                    ;

      btfsc STATUS,C                      ; résultat négatif ou positif ?
      bra no_negatif                      ;  

      comf diametre
+0,F                   ; inversion de tout les bits, car résultat négatif   
      comf diametre
+1,F                   ;  
     
      incf diametre
,F                     ; complément à deux

      bsf diametre
+1,7                    ; indicateur du résultat négatif, bits 16 à 1   

no_negatif
      bcf STATUS
,C                        ; carry à zéro pour effectuer une opération

      rlcf diametre
+0,F                   ; diametre = 2 * (- rayon)
      rlcf diametre+1,F                   ; multiplication par 2   


do_cercle
      movf xc
,W
      movwf zx

      movf x
,W
      addwf zx
,
 
      movf yc
,W
      movwf zy

      movf y
,W
      addwf zy
,F

      pset zx
, zy,0,1                     ; pset(xc + x, yc + y),couleur 
            
      movf yc
,W
      movwf zy

      movf y
,W
      subwf zy
,F

      pset zx
, zy,0,1                     ; pset(xc + x, yc - y),couleur 

      movf xc
,W
      movwf zx

      movf x
,W
      subwf zx
,
 
      movf yc
,W
      movwf zy

      movf y
,W
      addwf zy
,F

      pset zx
, zy,0,1                     ; pset(xc - x, yc + y), couleur
            
      movf yc
,W
      movwf zy

      movf y
,W
      subwf zy
,F

      pset zx
, zy,0,1                     ; pset(xc - x, yc - y), couleur
      
      
;-----------------------------------------------------------------------------------------------
                                                   la suite arrive 
;-----------------------------------------------------------------------------------------------

 



A suivre ...

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Algorithme de Bresenham
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#26 Message par francois77 » mar. 1 nov. 2022 15:27

Bonjour Temps-x

J'ai au moins appris quelque chose aujourd'hui, l'instruction comf

"Effectue le complément à 1 du contenu de l’emplacement mémoire spécifié"

Tu peux passer directement en mode 18f si cela te simplifie la vie

A+

Francois

Algorithme de Bresenham
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#27 Message par Claudius » mar. 1 nov. 2022 16:21

Bonjour le Monde,

Autre remarque constructive: Toujours séparer le traitement des données (ie. implémentation d'un algorithme) de leurs présentations (écran, synthèse vocale, etc.). Principe inventé en 1979 par feu la Société Xerox (cf. Modèle-Vue-Contrôleur - Définition et Explications et Modèle-vue-contrôleur pouvant se limiter au Modèle-vue dans le cas précis car aucune action utilisateur ;-)

Alors quand je vois au post #17 que le ratio x/y de l'écran est "noyé" dans l'algorithme et donc dans son implémentation ... on fait comment si on a un écran avec un ratio x/y de 1/1 ou 2/3. De plus, il faut revalider l'algorithme car celui-ci tient compte de la présentation !..

Rien que pour cette raison et sans animosité, bon nombre de développeurs ne passeront pas de temps à essayer de comprendre ni même à utiliser le code proposé (dommage pour le partage de la connaissance)

Maintenant, Temps-x, s'agissant de "Quand on teste en mode écran 320x200 pas besoin de loupe, on voit tout de suite les problèmes, surtout avec un écran 17 pouces." ... ben voyons ... très pratique avec ou sans loupe pour présenter à la communauté un dysfonctionnement ou même prouver avec certitude un bon fonctionnement

A suivre...

Algorithme de Bresenham
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#28 Message par paulfjujo » mar. 1 nov. 2022 20:01

satinas a écrit :Paul je ne vois pas en quoi un macro-assembleur n'est pas un assembleur. L'assembleur est un programme et un langage d'assemblage destinés à écrire du code machine lisible directement pas le processeur. Le fait de simplifier la saisie en dupliquant des parties de texte ne change rien à l'affaire.


je n'ai pas dit çà ! et ça ne contredit en rien ce que tu dis.
mais seulement que l'usage de macro .. et surtout de subroutines
font qu'on s'approche d'un langage de plus haut niveau .. comme le C
et lorsqu'on s'est fait , une bonne bibliotheque de sous programmes ou fonctions
la partie pure et dure , au niveau de l'instruction de base du MCU considéré , tend à disparaitre . (Vu par le programmeur !)
Avant de faire du C, j'ai beaucoup pratiqué l'ASM pour différent Microprocesseurs ou MCU .
(SCMP, 6502,6800,6809,PDP11, 68008,Z80,8086,80286,AT89C2501, PIC16F..)
et en ASM, à chaque fois il faut se palucher de A à Z le jeu d'intruction .. de plus en plus etoffé
au bout d'un moment on passe au C .. même si ce n'est pas la panaCée.
:sifflotte: avec quelques fois , des petits bouts d'ASM .. nostalgie ..et efficacité!

car on ne peut pas trop comparer un MCU (et ses peripheriques intégrés) comme ,un Microprocesseur (tout nu, tout bronzé!) .
Meme en C, la partie peripherique est largement usité avec les registres de base ,donc au plus pres de la version ASM

On se croirait entre Ru.... et Uk.... ( ASM et C) , ou l'inverse ( C et ASM )
Bref, je vais m'abstenir de poster quoi que ce soit , sur la rubrique ASM .

humour!!

A+ coté C comme Clair, je quitte le coté OBSCUR comme ASoMbrit
Aide toi, le ciel ou FantasPic t'aidera

Algorithme de Bresenham
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#29 Message par Temps-x » mar. 1 nov. 2022 20:06

Bonsoir francois77, Claudius,

francois77 a écrit :Source du message Tu peux passer directement en mode 18f si cela te simplifie la vie

Ça ne changerait pas grand chose, c'est surtout du temps qu'il me faut... c'est très instructif de marcher sur les pas d'un homme comme Bresenham

Claudius a écrit :Source du message Rien que pour cette raison et sans animosité, bon nombre de développeurs ne passeront pas de temps à essayer de comprendre ni même à utiliser le code proposé (dommage pour le partage de la connaissance)


Pas d'effort, pas de récompense.....

Claudius a écrit :Source du message un dysfonctionnement ou même prouver avec certitude un bon fonctionnement


Sache que rien n'est jamais acquit...

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Algorithme de Bresenham
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#30 Message par satinas » mar. 1 nov. 2022 20:21

L'avantage des macros est de permettre en assembleur de faire des pseudo fonctions avec passage d'arguments, sinon c'est la galère car on est obligé de remplir ou empiler/dépiler les arguments un par un lors des CALL. Sans macros on ne peut pas envisager de voir grand. Après bien sûr le choix du langage reste au goût de chacun selon son niveau de masochisme.
https://fr.wikipedia.org/wiki/MenuetOS


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 54 invités