Assembleur NASM
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Assembleur NASM



  1. #1
    physik_theory

    Assembleur NASM


    ------

    Bonjour mes acquis C et C++ du HTML et un peu de SQL. Je m'y connais un peu en RAM mais de manière intuitive et c'est vraiment des bases(bascules et leurs états logiques 0 ou 1 je sais conté en décimal en héxadécimal et en binaire les octets et leurs manipulation les architectures.). . Ce que j'essaye c'est de trouver un bon cours d'assembleur du genre le Site du Zéro(simple qui va du plus simple au plus compliqué de tel sorte à ce qu'on se disent à la fin "Ouah je sais tant de choses c'est simple en fait".). qui utilise le compilateur NASM. Auriez vous de bon liens je vous prie?

    Mon but finale est d'aborder l'assembleur en profondeur et donc grâce à cela de mieux connaître les ordinateurs. Je suis curieux de tout.

    Voilà tout.

    Merci d'avance et bonne après midi.

    PS : Peut être que ce genre de question à peut être était déjà poser auquel cas pardon. En effet je passe surtout mon temps en la Relatvité Générale sur la physique et je ne suis venu qu'une fois dans ce forum. Sinon YASM serait pas mal aussi.

    -----

  2. #2
    Jack
    Modérateur

    Re : Assembleur NASM

    par ici peut-être?

  3. #3
    physik_theory

    Re : Assembleur NASM

    Bonjour et merci Jack, je vais regardé cela il a l'aire bien. En plus il y a des rappelles de binaire et tous. Sinon quels sont les pré requis utile pour aborder ce cours(juste pour confirmer.). je vous prie?

    Merci d'avance et bonne soirée.

  4. #4
    Jack
    Modérateur

    Re : Assembleur NASM

    De quel cours parles-tu? (il y en a plusieurs).

    De toutes manières, je ne les ai pas lus. A l'époque ou j'ai fait un peu d'assembleur 8086, developpez n'existait pas encore. Internet non plus d'ailleurs.

    A+

  5. A voir en vidéo sur Futura
  6. #5
    physik_theory

    Re : Assembleur NASM

    Bonjour de celui . Il à l'aire bien. Par contre le compilateur c'est quoi je vous prie?

    Celui avec NASM me semble en effet moins complet : http://esauvage.developpez.com/tutor...m/?page=page_1

  7. #6
    Jack
    Modérateur

    Re : Assembleur NASM

    je ne vois pas trop ce qu'il a en plus. Pour débuter, je pense que n'importe lequel doit convenir.

    Par contre le compilateur c'est quoi je vous prie?
    Pour ce type de langage, on ne parle pas de compilateur mais d'assembleur, bien que fonctionnellement les deux fassent la même chose. L'assembleur se nomme donc "as" comme précisé dans le tutoriel que tu cites.

    A+

  8. #7
    physik_theory

    Re : Assembleur NASM

    Bien merci Jack Je vous recontacte si j'ai des problèmes d'installation. De toutes façon il est facilement installable sou Linux je suppose. Je le ferais demain.

    Bonne soirée.

  9. #8
    mike.p

    Re : Assembleur NASM

    Bonjour,

    je réponds ici à une question de physik_theory dont la boite est saturée.

    nasm -o [un nom].com [nom complet du fichier texte]
    exemple

    nasm -o toto.com toto.nasm

    Ca dit à l'assembleur nasm :
    compilez toto.nasm et placez la commande dans le fichier toto.com ( -o est souvent utilisé dans le sens output vers fichier )

    si c'est linux , il faut ajouter une autre commande :
    chmod u+x toto.com
    pour le rendre exécutable

    Ensuite pour le tester sur la ligne de commande :
    toto.com
    ou ( ca peut dépendre de la variante d'unix et de l'environnement )
    ./toto.com


    Programmer en assembleur est rarement requis et surtout peu portable.
    Ce qui est intéressant, c'est de savoir le lire comme on lit un prog en macro langage , pour ensuite analyser le résultat de la compilation d'un programme en C : comprendre comment C utilise la Ram et les registres , comment il appelle ses sous progs etc ...
    Après ça, programmer en C devient beaucoup plus facile.

  10. #9
    mike.p

    Re : Assembleur NASM

    Bonjour,

    Il faut linker le programme objet !

    Désolé, je me suis emmêlé avec DOS ou bien j'ai du me dire que nasm contenait un linker ... ( mea culpa , j'utilise d'autres méthodes pour insérer de l'asm )

    le mieux sera de compiler ainsi
    nasm toto.nasm -o toto.o
    gcc -o toto.com toto.o

    gcc appellera le bon linker

    puis il faudra faire un chmod etc

  11. #10
    Xirdal

    Re : Assembleur NASM

    bonsoir

    J'ai bricolé de l'assembleur avec Debug au temps jadis du 8086, c'est une galère. Mais ça marche encore sous XP (en 16 bits)
    Après on passe a Masm ou Tasm, pour faire quelque chose c'est une montagne a gravir.
    Perso je préfère la rigueur du Tasm de Borland aux acrobaties verbales de Microsoft, mais tout ça c'est sinagogue.
    Pour programmer en assembleur , je conseille de prendre Delphi et son assembleur intégré, mais attention, pas question de in, out outs etc sous Xp, il faut être sous Win98,et là on a accès a toutes les instructions du processeur (jusqu'a pentium SSE de mémoire)
    Mon opinion sur le C est celui des delphistes convaincus : C du charabia (comme le disait si bien John Colibri avec un C quand même )
    Avec Dephi on a déja une interface conviviale avec une belle fenêtre qui ressemble a quelque chose, bon pour les purs on fait une console, c'est triste comme un jour de pluie sans copine, mais ça rappelle si bien MSdos, DRdos et Linux initial du temps oui j'étais jeune et beau.

    Bon courage quand même, avec toutes ces instructions à n'en plus finir pour faire pas grand chose, mais pour apprendre c'est top.

    A+
    Xirdal

  12. #11
    mike.p

    Re : Assembleur NASM

    Citation Envoyé par physik_theory
    Bonjour , dans gcc -o first first.o le premier first , quelle est l'extension de la commande ?
    bonjour,
    sur dos, on met com ou exe selon le modèle, sur linux on fait ce qu'on veut.

    Utilisez first.com si vous voulez !

  13. #12
    mike.p

    Re : Assembleur NASM

    Citation Envoyé par physik_theory Voir le message
    Ca ne marche pas
    en effet, je n'avais pas vu le code
    Il faudrait trouver d'autres samples ( google nasm script samples )

    celui ci est fait pour dos et a quelques défauts pour linux :

    Code:
    					org 0x0100 ; Adresse de début .COM
    					;Ecriture de la chaîne hello dans la console
    					mov dx, hello
    					mov ah, 0x9
    					int 0x21
    					ret
    					hello: db 'Bonjour papi.', 10, 13, '$'
    1 ) la première ligne est pour une commande de type com ( qui ne prend son sens qu'avec Dos )
    2 ) il est sous dimensionné : mov dx,hello doit être mov edx,hello car dx est 16 bits
    3 ) int 0x21 doit être une commande bios ou qqchose de ce genre, linux ne la connait pas

    Sur linux , il faut un peu de code pour le print ou appeler une librairie ; de plus le format est différent : le fichier est divisé en sections et en général il faut un main par programme ( et non _main comme pour un exe sous Dos )

    Bref, il faut changer de sources de samples et faire gaffe aux contextes Dos ou Linux des commentaires.
    il y en a d'autres mais celui ci se lit bien :
    http://cs.lmu.edu/~ray/notes/nasmexamples/

    ps : J'ai vu qu'il y avait une option elf64 mal documentée ; peut être n'est elle pas le défaut pour elf donc , utilisez de préférence elf64 dans
    nasm -f elf64 -o toto.o toto.nasm
    gcc -o toto toto.o

    bon courage !

  14. #13
    Cyrille999

    Re : Assembleur NASM

    Citation Envoyé par mike.p Voir le message
    en effet, je n'avais pas vu le code
    Il faudrait trouver d'autres samples ( google nasm script samples )

    celui ci est fait pour dos et a quelques défauts pour linux :

    Code:
    					org 0x0100 ; Adresse de début .COM
    					;Ecriture de la chaîne hello dans la console
    					mov dx, hello
    					mov ah, 0x9
    					int 0x21
    					ret
    					hello: db 'Bonjour papi.', 10, 13, '$'
    1 ) la première ligne est pour une commande de type com ( qui ne prend son sens qu'avec Dos )
    2 ) il est sous dimensionné : mov dx,hello doit être mov edx,hello car dx est 16 bits
    3 ) int 0x21 doit être une commande bios ou qqchose de ce genre, linux ne la connait pas
    C'est une interruption MS/DOS.

    @physik_theorik: Il est très important d'utiliser l'assembleur qui va bien avec le système d'exploitation adéquat !

    Si tu désires faire de l'assembleur sous Linux, un très bon bouquin: Assembly Language Step-by-Step: Programming with Linux (books.google.fr/books?isbn=1118080998). Il y a aussi le vieux: LINUX Assembly Language Programming

    @Jack: Idem. Y'a des jeunes qui ne se doutent même pas de la chance qu'ils ont avec le web et toutes les ressources, forums et autres facilités !


    Cyrille
    La connaissance est la matière première de l'Intelligence.

  15. #14
    mike.p

    Re : Assembleur NASM

    pourquoi en rouge ? êtes vous instit ?

  16. #15
    physik_theory

    Re : Assembleur NASM

    Bonjour et merci à tous de vos réponses[QUOTE=Cyrille999;4608656]

    Si tu désires faire de l'assembleur sous Linux, un très bon bouquin: Assembly Language Step-by-Step: Programming with Linux (books.google.fr/books?isbn=1118080998). Il y a aussi le vieux: LINUX Assembly Language Programming


    J'ai pris NASM dans la logithèque je ne savais pas. Donc pou commencer l'assembleur sous linux je fais comment je vous prie? Avez vous des liens de cours avec des compilateurs sous linux je vous prie? Moi en tous cas je ne fait que tomber sur NASM ou sur YASM. Ou alors il faudrait modifier le code pour que linux le comprenne.

    Merci d'avance et bonne après midi.

  17. #16
    Cyrille999

    Re : Assembleur NASM

    Bonjour à toi,

    En clair, comme te l'a souligné mike.p la source de programme assembleur que tu as cherché à compiler ne peut que fonctionner sous MS/DOS (ou dans une boîte MS/DOS sous windows); Tu dois trouver des sources de programmes qui fonctionneront sous Linux (effectivement Nasm fonctionne aussi sous windows, ceci expliquant pourquoi tu as des sources de petits programmes MS/DOS).

    Non, je n'ai pas de liens: Il te suffit de chercher google est ton ami, non ?!?

    Tiens: http://asm.developpez.com/cours/

    C'est pas le compilateur que tu dois changer, c'est prendre une source "non MS/DOS"

    Tu sais, je n'ai pas fait d'assembleur depuis....22 ans ! Linux n'existait pas encore en ce temps là. Ni le web: J'appartiens à la génération "livres" (quand je me forme, je m'achète plutôt un livre que de chercher sur Internet); Tiens, je t'en ai trouvé un autre, en français dans le texte: Le langage assembleur Maîtrisez le code des processeurs de la famille X86.

    Je suppose que tu fais de l'assembleur "par curiosité intellectuelle" et "comprendre les arcanes de la machine" ? Car en dehors de cette raison, il vaut mieux perdre du temps sur un autre langage

    @Mike.p: Pourquoi le rouge ? Parce que ça ressort bien. Pas instituteur, mais oui, j'ai déjà enseigné, c'est peut être ce côté là qui ressort ! Désolé si ça t'a choqué.


    Cyrille
    La connaissance est la matière première de l'Intelligence.

  18. #17
    physik_theory

    Re : Assembleur NASM

    Bonjour. Thanks for all.
    Citation Envoyé par Cyrille999 Voir le message
    Je suppose que tu fais de l'assembleur "par curiosité intellectuelle" et "comprendre les arcanes de la machine" ? Car en dehors de cette raison, il vaut mieux perdre du temps sur un autre langage



    Cyrille
    En effet. Je suis aussi passionner par les Sciences Physique. Surtout la Relativité Générale.

    Bonne après midi.

  19. #18
    physik_theory

    Re : Assembleur NASM

    Par contre non programmer n'est pas une perte de temps.

  20. #19
    physik_theory

    Re : Assembleur NASM

    De mon point de vue en tous cas.

Discussions similaires

  1. problème avec exercice asm avec nasm et interruption dos 21h
    Par anouarattn dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 13/12/2011, 05h27
  2. Assembleur Z80
    Par invitef41f23a0 dans le forum Électronique
    Réponses: 6
    Dernier message: 27/12/2009, 20h08
  3. Assembleur
    Par invitee8b04b8f dans le forum Technologies
    Réponses: 12
    Dernier message: 20/12/2008, 20h12
  4. Assembleur VAX
    Par invited0c72bcb dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 02/05/2006, 07h48
  5. C ou assembleur ?
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 3
    Dernier message: 08/03/2006, 20h08