Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mémo sur l'Assembleur

Ressources, bonnes pratiques, ...?

    20 mars 2015 à 21:23:01

    bonsoir, je suis une débutante en assembleur 8086, svp quelle est la relation qui existe entre la taille du segment memoire et la taille des registres ou le bus d'adresses merci !

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 avril 2015 à 19:16:42

      Salut, en mode reel (16-bit), la taille d'un segment est codé sur 16 bit, et on accede via [segment:offset], le segment peut etre renseigné par ds/es/ss et l'offset par bx, bp, si, di.

      Et l'adresse absolue est calculée par (segment * 16) + offset

      Et a propos du bus d'address, il est limité a 48 bit de mémoire, mais peut etre configure selon le mode du cpu (mode reel (16) / mode protégée (32) / mode long (64)) ce son les principaux mode du cpu sans rentrée dans les detail.

      -
      Edité par Anonyme 4 avril 2015 à 19:17:48

      • Partager sur Facebook
      • Partager sur Twitter
        30 avril 2015 à 16:01:10

        Bonjour à tous,

        Le cours de BigOnOff, qu'on m'a recommandé sur le forum, est extrêmement complet, et mis à jour très régulièrement. Pour mon pauvre petit cerveau qui avait bien du mal à comprendre une datasheet, ce poly a été un miracle!

        Il est hébergé sur le site d'abcelectronics : www.abcelectronique.com/bigonoff

        Bisous, je vous aime mes zéros <3 

        -
        Edité par hermi-chan 30 avril 2015 à 16:02:49

        • Partager sur Facebook
        • Partager sur Twitter
          11 juin 2015 à 15:21:25

          Trop cool ce MEMO ! ;o)
          • Partager sur Facebook
          • Partager sur Twitter
          Tous ensemble pour le retour de la programmation en l'assembleur !! <3
            4 juillet 2015 à 13:05:28

            le zero pointé a écrit:

            Ge0 a écrit:

            • masm ( http://www.masm32.com/ ) le macro assembleur de Microsoft, (limité au format PE, clauses qui interdisent de créer des malwares, ne supporte pas l'assemblage de certaines instructions...)

            -

            Edité par Ge0 le 2 août 2013 à 13:46:52

            Salut!

            1°) Concrètement en quoi masm est limité? Cela veut dire qu'il est bridé volontairement? Dans ce cas pourquoi ne pas se contenter de nasm?

            2°) Concernant The Art of Assembly, je me suis penché dessus, en pensant l'acheter, et je me suis aperçu qu'il était plutôt orienté HLA, qui n'est pas de l'assembleur pur. Est ce que vous connaissez un bouquin (ou un ensemble de bouquins) qui permettrait d'apprendre l'assembleur d'une manière assez complète?



            -
            Edité par le zero pointé le 7 septembre 2013 à 20:08:01



            • Partager sur Facebook
            • Partager sur Twitter
              4 juillet 2015 à 13:12:35

              a écrit:

              Pour la partie documentations génériques, j'ai des trucs à proposer.

              Le premier document que je propose parle des assembleurs, les logiciels qui traduisent du code assembleur en langage machine. Il est disponible via ce lien : Assemblers and loaders. Le livre en lui-même est assez vieux, mais son contenu est toujours d'actualité. De plus, il contient quelques trucs sur l'ASM, même si ce n'est pas transcendant.

              Et puis, dans les documentations générales, pourquoi ne pas mettre "Fonctionnement des ordinateurs de zéro", ou plus spécifiquement, les chapitres qui traitent de l'ASM et du langage machine ? Vous avez déjà ajouté des livres d’architecture, autant pousser la logique jusqu’au bout.



              • Partager sur Facebook
              • Partager sur Twitter
                4 juillet 2015 à 13:12:59

                Parfait, merci très intéressantes pour le partage
                • Partager sur Facebook
                • Partager sur Twitter
                  4 juillet 2015 à 13:15:14

                  Apophis999 a écrit:

                  Pour ceux qui voudraient programmer quelque chose de très concret, il y a ce tutoriel :

                  http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.TutoOS

                  pour créer un OS en ASM x86 avec NASM, mais il faut déjà connaître les bases de l'ASM.



                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 septembre 2015 à 18:05:30

                    Bonjour les gars quelqu'un peut-il nous donner une liste avec tous les appels du noyau qui sont disponibles sur windows
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      5 septembre 2015 à 18:13:56

                      Ce que tu sous-entends sont des interruptions, plus commune le n°0x21, par contre ells sont codées en 16-bit, donc c'est un peu has been de nos jours: http://www.gladir.com/LEXIQUE/INTR/INT21.HTM?Target=C

                      Si tu veux être d'actualité, tape dans la WinAPI: WinAPI - msvrt - gdi32 - user32 - kernel32 - kernel32 (2) -

                      http://www.gladir.com/CODER/CWINDOWS/apiwin.htm

                      -
                      Edité par Anonyme 6 septembre 2015 à 19:14:40

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 septembre 2015 à 18:17:00

                        salut pouvez vous les gars nous donner une list avec toute les valuer possible de l'instruction int est aussi une description de ce que fait chaque une comme:

                        int 0x21 ;pour affichier le text a partire de l'address qui se trouve dans dx.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 décembre 2016 à 11:42:58

                          j'ai pas compris ce programme j'ai besoin de votre aide : 
                          ecrire un programme en assembleur qui permet de calculer la somme et la difference entre deux variables de type un octet , les deux variables sont non initialisé
                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 décembre 2016 à 12:16:44

                            HajerKhlifa a écrit:

                            j'ai pas compris ce programme j'ai besoin de votre aide : 
                            ecrire un programme en assembleur qui permet de calculer la somme et la difference entre deux variables de type un octet , les deux variables sont non initialisé


                            Qu'est ce que tu ne comprends pas ? 

                            Attention : ce forum n'est pas destiné à faire faire ses exercices.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 février 2017 à 17:15:49

                              juste pour ajouter un lien que je juge assez intéressant mais encore incomplet  pour l'instant : il s'agit essentiellement d'un tutoriel sur " l'assembleur "  qui recommence avec les bases jusqu'au niveau avancé. Voilà le lien : https://x86asmdemystified.landen.co/?source=memo_asm_openclassroom

                              -
                              Edité par cotoporto 29 novembre 2019 à 10:24:54

                              • Partager sur Facebook
                              • Partager sur Twitter
                              tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
                                18 mars 2017 à 21:22:13

                                Bonsoir à tous.

                                J'ai aussi mis en place un forum pour ceux qui veulent utiliser le compilateur nasm pour écrire des programmes en 64 bits et en utilisant les fonctions de l'API Windows.

                                voir   http://assembleur64.forumactif.com/

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  16 avril 2017 à 15:36:09

                                  comment ecrire un programme assembleur de moteur pas à pas svp
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 avril 2017 à 16:32:21

                                    Bonjour. J'aimerais avoir un cours détaillée pour programmer en assembleur. Je suis un vrai débutant. Merci
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    @newton

                                      26 avril 2017 à 8:28:02

                                      voici un cours pour toi https://x86asmdemystified.landen.co/?source=memo_asm_openclassroom


                                      -
                                      Edité par cotoporto 29 novembre 2019 à 10:25:09

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      tu aimerais apprendre l'assembleur avec NASM depuis zéro ? clique ici suis le fil de discussions ici
                                        3 juin 2019 à 0:54:56

                                        Voici un cours exellent pour un debutant : https://www.tutorialspoint.com/assembly_programming/index.htm

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        "Il faut toujours viser la lune, car même en cas d'échec vous atterrirai dans les étoiles." Oscar wilde
                                          5 octobre 2019 à 16:09:23

                                                    table des Interruptions DOS
                                          
                                          
                                          * 01h: Lancement d'un programme en mode pas-à-pas (permet de le débogueur).
                                          * 02h: Interruption non masquable.
                                          * 03h: Erreur de rupture.
                                          * 04h: Erreur de dépassement (par calcul, exemple : "mov al, 200 ; add al,140" -> 340 > 255 !!!).
                                          * 05h "Imprime écran", imprime une copie de l'écran en mode texte.
                                          * 08h: Horloge tournant à 18.6 clics/seconde.
                                          * 09h: Lecture du clavier. La touche est codée avec un 'code clavier' (scan code en anglais) traduit en code standart ASCII par l'interruption 16h.
                                          * 0Bh: Gestion du port COM2.
                                          * 0Ch: Gestion du port COM1.
                                          * 10h: Gestion de la carte vidéo.
                                          * 11h : Liste de configuration (mémoire, nombre de ports COM, co-processeur, ...).
                                          * 12h: Taille de la mémoire basse (640 Ko maximum).
                                          * 13h: Gestion des différents disques.
                                          * 14h: Gestion de l'interface série (ports COM, voir les interruptions 0Bh et 0Ch).
                                          * 15h: Manette de jeu, cassette et TopView.
                                          * 16h: Conversion du code de la touche (lu par l'interruption 09h) en code standart ASCII.
                                          * 17h: Gestion de l'imprimante.
                                          * 18h: Rom BASIC.
                                          * 19h: Rountine de chargement du DOS.
                                          * 1Ah: Gestion de l'heure réelle.
                                          * 1Bh: Surveille la pression de la combinaison de touche 'CTRL + C'.
                                          * 1Ch: Chronomètre clic/clic à la vitesse de l'horloge 08h : 18.6 Hz. Sa valeur est stockée à l'emplacement 0040h: 0060h.
                                          * 1Dh: La table d'initialisation vidéo.
                                          * 1Eh: La table de paramètre des disquettes.
                                          * 1Fh: La table des caractères graphiques.
                                          * 20h: L'interruption DOS : Fin d'un programme au format COM (le format EXE est largement plus répendu aujourd'hui).
                                          * 21h: L'interruption DOS : Fonctions universelles (disque dur, horloge, ...).
                                          * 22h: L'interruption DOS : Adresse de fin de processus.
                                          * 23h: L'interruption DOS : Surveille CTRL + PAUSE (ou CTRL + BREAK).
                                          * 24h: L'interruption DOS : Erreur fatale d'un vecteur d'interruption.
                                          * 25h: L'interruption DOS : Lecture directe d'un disque.
                                          * 26h: L'interruption DOS : Ecriture directe sur un disque.
                                          * 27h: L'interruption DOS : Programmes résidents.
                                          * 28h: Fin d'un programme restant résidant en mémoire.
                                          * 2Fh: Interruption pour plusieurs sous programmes. Gestion du réseau, driver CD-Rom MSCDEX, ...
                                          
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 novembre 2019 à 21:29:30

                                            lol dire que j'avais appris l'assembleur avec le petit programme debug de windows ;)

                                            Quand je vois ce qui existe maintenant comme logiciels assembleurs ça m'épate, c'est plus facile c'est sûr ;)

                                            Au début tu es débutant, donc ne commence pas par faire un programme, commence par savoir mettre une valeur dans un registre, une autre, comparer les deux valeurs, aller à une adresse après la comparaison, mettre un petit texte à une adresse, l'afficher avec l'interruption 21, apprendre à attendre la pression d'une touche avec l'interruption clavier, etc, et c'est faisant comme ça et en regardant chaque fois le contenu de la zone d'adresse avec un dump que tu comprendras bien l'assembleur, ensuite tu te lancera dans un vrai programme, mais pas de suite un os, lol.

                                            Tiens tu peux t'amuser a émettre des sons aussi juste pour t'amuser ;)

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Abou
                                              25 avril 2021 à 0:53:50

                                              Bonjour.

                                              Je sais que ce suhet est ancien est je suis désolé si cela dérange que je le déterre.

                                              Je ne suis pas ici pour poser une question mais pour donner un lien vers un interpreter asm arm 86 :

                                              https://www.peterhigginson.co.uk/AQA/

                                              est aussi, je déterre ce sujet, dans le but de le déterrer et de rameuter des gens qui pourraient être intéressés pas l'idée de faire de l'asm.

                                              Cet interpreter m'a été conseillé par des amis à qui je viens de confier le liens de ce sujet, il se peut donc qu'ils viennent et rameutent eux aussi d'autres personnes.

                                              Merci.

                                              Au revoir.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                25 avril 2021 à 14:14:36

                                                ManoloSardó a écrit:

                                                Je ne suis pas ici pour poser une question mais pour donner un lien vers un interpreter asm arm 86 :

                                                https://www.peterhigginson.co.uk/AQA/

                                                est aussi, je déterre ce sujet, dans le but de le déterrer et de rameuter des gens qui pourraient être intéressés pas l'idée de faire de l'asm.

                                                Cet interpreter m'a été conseillé par des amis à qui je viens de confier le liens de ce sujet, il se peut donc qu'ils viennent et rameutent eux aussi d'autres personnes.

                                                Dejà pour être pris aux sérieux , faudrait savoir de quoi en parle soit du x86 soit de ARM , arm 86 n'existe pas.
                                                Bon vu ton lien ça semble de l' ARM (et j'en suis même pas sur) , faudrait donner l'ISA avec.
                                                Bref , ça semble pas etre tout à fait de l'ARM...

                                                Après je n'ai rien contre les interpréteur , mais perso j'en vois pas l’intérêt , j'ai arrêter d'apprendre l'asm depuis longtemps ,si je veut faire de l'ARM , je le fais directement sur la machine concernée :)

                                                -
                                                Edité par HelbaSama 25 avril 2021 à 14:15:27

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  25 avril 2021 à 20:01:06

                                                  désolé pour la confusion arm et 86, j'essais des deux en ce moment et je me mélange les pinceaux. l'avantage d'un interpreter c'est que l'on évite de toucher à la mémoire du pc (n'ayant qu'un mauvais pc et un rasbpi qui me sert déjà, je peux peux pas risque de tuer mon pc), je pourrais mettre un VM, mais c'est plus compliqué etc... ensuite, l'interpreter à un asm plus simpliste, moins violent (perso avant que je reprenne l'asm y'a quelques jours, j'en avais fait qu'au collège, c'était du SuperH casio, c'était un autre délire).

                                                  perso j'ai repris l'asm pour trois raisons :

                                                  • je fais NSI au lycée (1ere) et (malgré le retard du prof), on fait de l'asm
                                                  • mes amis (qui sont avec moi en NSI) en font aussi
                                                  • Actuellement je programme un langage de prog fonctionnel et orienté object qui aura l'aventage d'être interprétable (par du GO) ou compilable en asm, donc il faut que je me replonge dans le bain. (Je pense que je vais le compiler en pseudo asm puis ce pseudo asm va être compilé en asm pour plus de machines par Flex and Yacc)

                                                  -
                                                  Edité par ManoloSardó 25 avril 2021 à 20:07:13

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    25 avril 2021 à 20:19:26

                                                    Alors ,
                                                    1) tu ne risque pas plus de tuer ton "PC" que faire du C peuvent tout les deux accéder aux hards, ceux que tu pourra faire en asm , c'est souvent des instructions plus spécifique qui ne cause aucun "danger".
                                                    2) Que ça soit sur RasPi ou sur PC , tu codera sur l'OS qui te fournira une protection (encore heureux).

                                                    Après je suis étonné de voir des lycéen faire de l'ams , vu le peu de bagage informatique.
                                                    ensuite l'asm c'est assez rare d'en faire donc bon ,ce n'est qu'un outils parmi tant d'autre.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      26 avril 2021 à 12:57:23

                                                      j'ai commencé la prog en 5e (j'étais non scolarisé), sur casio graph 35+ puis 90+e (et rapidement après, du basic sur un tas d'émulateur APPLE, atari, amstrad, comodor, etc...), ensuite (en 4e), j'ai fait du python, du js, du c, du superh, et du java (mais bon, je débutait dans les "vrais" langages), ensuite, je suis allé au collège pour ma 3e (ordre du rectorat) et j'ai commencé le c++, le php, le Node.js, le arduino, le bash et j'ai commencé à écrire la syntaxe de mon futur langage (le Jnerd à l'époque, car il était destiné à être interprété par du js, mtn je compte le faire en GO, donc Gnerd). maintenant je suis au lycée, et comme quelques un de mes potes, je suis meilleurs que mon prof de NSI dans sa propre matière...

                                                      bah comme je l'ai expliqué, mon futur langage sera compilé en asm, donc il faut que je m'y plonge.

                                                      Ensuite, certes, ce n'est pas très utilisé, mais je trouve ça rigolo ^^

                                                      -
                                                      Edité par ManoloSardó 26 avril 2021 à 12:59:24

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Mémo sur l'Assembleur

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                      • Editeur
                                                      • Markdown