Asm et asm-one

Forum Amiga Coding Asm et asm-one

  • Ce sujet contient 11 réponses, 4 participants et a été mis à jour pour la dernière fois par jelor, le il y a 7 mois.
  • Créateur
    Sujet
  • #171078
    slack
      • Level 7
      • Messages : 460

      Je découvre l’assembleur sur amiga avec les tutoriels de jel :

      J’arrive à assembler un programme simple mais pas à créer un exécutable. La commande WO crée un fichier mais le cli refuse de le lancer : fichier non exécutable.

      Un expert d’asm-one peut-il m’expliquer comment sauvegarder un fichier executable ?

    Affichage de 11 réponses de 1 à 11 (sur un total de 11)

    Partager sur vos réseaux sociaux préférés :
    Facebooktwitterredditpinterestlinkedintumblrmail

    • Auteur
      Réponses
    • #171079
      stephbb75
        • Level 10
        • Messages : 1190

        Salut @slack,

        Ha je ne l’ai pas encore vu celui la ;-)

        J’ai récupéré le code.

        J’ai fait A (assembler) puis WO et donné un nom à mon fichier.
        Et si je clique sur le fichier depuis le WB cela fonctionne.
        Cela m’ouvre la fenêtre d’exécution d’une commande, simplement Ok et c’est bon.

        As-tu changé quelque choses dans son code ?

        Si tu fais “A” (assemble) tu n’as pas d’erreurs ?
        Si tu fais “J” cela fonctionne ?

        Je ne sais pas quel tuto tu tentes de compiler, mais parfois dans ces sources il y a des erreurs (de frappes bien souvent) :scratch:

         

         

        https://youtube.com/@stephbb75



        #171081
        slack
          • Level 7
          • Messages : 460

          Salut stephbb75,

          Comment recupère-tu le code ? En suivant la vidéo, j’ai tapé le code (en l’adaptant légèrement). La commande “a” permet de l’assembler sans erreur. La commande “j main” lance le programme qui fonctionne comme attendu. Mais la commande “WO” sauvegarde un fichier  qui n’est pas exécutable à partir du cli.

          Quelle version asm-one utilises-tu ? J’utilise la dernière disponible sur aminet. Utilises-tu des options particulières d’asm-one ? Je ne pense pas avoir modifié ma configuration par défaut.

          P.S. La commande “w” est à  utiliser sans modération après tout changement du code et avant exécution : on n’est pas à l’abris d’un bug qui va planter l’amiga et on est heureux de pouvoir recharger la dernière  version du code pour le corriger et supprimer le bug.

          #171083
          stephbb75
            • Level 10
            • Messages : 1190

            Salut @slack,

            Il faut lire les petits encarts sous les vidéo :lol:
            Il se trouve dedans dans les 1ere et 10ème vidéos :
            https://drive.google.com/drive/folders/0B4P7Pmx-W5Dkc2poejFpRWVQc3M?resourcekey=0-o3DQHXZLf4sNec1dyp4TyA

            alors moi cela fonctionne du WB ou du cli.
            Tu compiles quel tuto, le 44  ou un autre ?

            Par contre, “j” suffit pour exécuter.

            j’ai tapé le code (en l’adaptant légèrement)

            Ha c’est peux être ton adaptation ;-)

            Tu es sur quel machine / systéme ?

            Quelle version asm-one utilises-tu ?

            La 1.48

            Utilises-tu des options particulières d’asm-one ?

            Non je ne pense pas, celle de base.

            Oui il faut sauver le code avant chaque exécution c’est la base :lol:

            https://youtube.com/@stephbb75

            #171119
            slack
              • Level 7
              • Messages : 460

              @stephbb75,

              Finalement et sans que je ne change rien, j’arrive à sauvegarder des fichiers exécutables.

              Comme une tâche buguée peut sous amigaOS modifier toute la mémoire, sans restriction, je pense qu’un de mes programmes bugués a modifié quelques octets qui ne lui appartenait pas et perturbé le fonctionnement du système.

               

              J’utilise un amiga 1200 réel avec une carte accéleratrice 68030+68882 et 8 Mo de Fast. Le tout fonctionne sous amigaOS 3.0 livré d’origine.

              Sous asm-one, la commande “j” lance le code au premier identifiant. Il me semble que si on lance plusieurs fois de suite, asm-one appelle les identifiant successivement. Et rien n’interdit que le premier identifiant désigne l’emplacement d’une variable. Pour ces raisons, je préfère appeler le début du code explicitement.

              Merci pour le lien que j’avais raté : je prends le train en marche et je n’ai pas visionné les 44 vidéos, mais seulement la 44ième.

              Merci pour ton aide.

               

              P.S. les fonctions RawDoFmt et PrintIText méritent le détour. Vive l’amiga, une source de découvertes inépuisable.

              #171120
              stephbb75
                • Level 10
                • Messages : 1190

                Salut,

                Comme une tâche buguée peut sous amigaOS modifier toute la mémoire,…

                Oui c’est possible !

                Sous asm-one, la commande « j » lance le code au premier identifiant….

                Je dois bien avouer que cela fait très longtemps que je n’ai plus programmé en asm sur Amiga, j’ai un peu oublié ;-)

                Merci pour le lien que j’avais raté : je prends le train en marche et je n’ai pas visionné les 44 vidéos, mais seulement la 44ème.

                Tu as de quoi t’occuper alors :lol:

                Par contre il y a tout de même pas mal d’erreurs de frappe et case dans ces codes, il faut bien souvent corriger avant que cela compile :-p

                https://youtube.com/@stephbb75

                #171124
                slack
                  • Level 7
                  • Messages : 460

                  @stephbb75,

                  Merci pour ta patience et tes conseils.

                  Pour le problème de la case des identifiants, il y a un réglage dans asm-one 1.48 qui lui permet soit de faire la distinction entre  majuscule-minuscule dans les identifiants, soit de les confondre.

                  Dans ses vidéos, jel utilise la version 1.02 d’asm-one. Possède-t-elle ce réglage ?

                  De ton côté, tu peux configurer asm-one pour qu’il confonde majuscule et minuscule dans les identifiants. Et ainsi t’éviter des corrections du code.

                   

                  De mon coté, j’ai activé la distinction. Ainsi, un identifiant s’écrit d’une seule manière et je trouve que cela améliore la lisibilité du code.

                   

                  Sans dénigrer la programmation baremetal de l’amiga, je préfère actuellement coder des programmes qui respectent le système d’exploitation et le multitache. Les vidéos YouTube de jel sont très bien faites mais pour le moment, je donne la priorité aux vidéos consacrées au système d’exploitation.

                   

                  #171136
                  stephbb75
                    • Level 10
                    • Messages : 1190

                    Salut,

                    Pour le problème de la case des identifiants, il y a un réglage dans asm-one 1.48 qui lui permet soit de faire la distinction entre majuscule-minuscule dans les identifiants, soit de les confondre.

                    Oui, mais en dev c’est bien la case ;-)
                    Tu met tes constante en majuscule, tes variables avec maj et normal, …
                    Mais bon, faut évité de faire les même nom quand même !

                    Sans dénigrer la programmation baremetal de l’amiga, je préfère actuellement coder des programmes qui respectent le système d’exploitation et le multitache.

                    C’est deux façon de programmer sur Amiga (et d’autres machines) qui n’ont pas le même but en fait.

                     

                    https://youtube.com/@stephbb75

                    #171225
                    jelor
                      • Level 1
                      • Messages : 16

                      Salut,

                      J’ai tenu compte de vos commentaires et modifié tous les fichiers sources de mes tutos pour qu’ils respectent bien la casse.
                      Effectivement le respect de la casse est rigoureusement indispensable en C et en programmation système, mais bien souvent en assembleur à l’époque, on ne respectait pas la casse et j’ai gardé mes mauvaises habitudes pour les tutos….
                      Je décoche le paramètre dans asmONE pour les tutos à venir ! (Ucase = Lcase dans asmONE 1.02)

                      Attention malgré tout, il y a pas mal de sources de démos qui ne respectent pas la casse, et si vous les assemblez, vous devrez recocher ce paramètre

                      Merci pour votre intérêt !

                       

                      #171246
                      stephbb75
                        • Level 10
                        • Messages : 1190

                        Salut @jelor,

                        J’ai tenu compte de vos commentaires…

                        Cool :-)

                        Effectivement le respect de la casse est rigoureusement indispensable en C et en programmation système

                        Oui, et c’est finalement une bonne habitude.

                        mais bien souvent en assembleur à l’époque, on ne respectait pas la casse

                        Cela dépendais des assembleur et des machines.

                        mais bien souvent en assembleur à l’époque, on ne respectait pas la casse et j’ai gardé mes mauvaises habitudes pour les tutos….

                        Quand on a de habitude c’est parfois dur de s’en défaire ;-)

                        Merci pour votre intérêt !

                        Merci pour tes vidéos, c’est super, surtout de se souvenir de tout cela !

                        https://youtube.com/@stephbb75

                        #171328
                        Staff
                        Jim Neray
                          • Level 22
                          • Messages : 7038

                          Merci pour votre intérêt !

                          Merci à toi pour tes vidéos surtout. C’est énorme d’offrir un truc comme ca, pas à pas en vidéo et en français. :rose:

                          A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
                          Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
                          Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD

                          - Micromiga.com - La boutique Amiga -


                          #171490
                          jelor
                            • Level 1
                            • Messages : 16

                            Merci !!

                          Partager sur vos réseaux sociaux préférés :
                          Facebooktwitterredditpinterestlinkedintumblrmail
                          Affichage de 11 réponses de 1 à 11 (sur un total de 11)
                          • Vous devez être connecté pour répondre à ce sujet.