Précédent   Forum des professionnels en informatique > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 27/01/2003, 16h20   #1
Membre à l'essai
 
Inscription: juillet 2002
Localisation: brest
Messages: 45
Par défaut Quel compilateur choisir pour l'assembleur ?

j'assemble de puis pas tres longtemps avec tasm mais je sais pas m'en servir et je me demandais si il existait des compileurs 'facile et puissant'

sinon si vous savez ou je peu trouver de la doc sur tasm (si possible en francais)


enfin sous linux qu'est ce qui existe pour assembler?


merci d'avance!
forthx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2003, 19h55   #2
Membre du Club
 
Inscription: septembre 2002
Messages: 97
Comme assembleur facile et puissant (et qui marche sous linux) , il existe Nasm:
http://sourceforge.net/projects/nasm/
2PluS4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2003, 20h10   #3
Membre émérite
 
Inscription: mai 2002
Messages: 728
Personellement, j'utilise FASM : petit, complet, performant, et l'auteur est très actif : chaque fois que je vais sur le site pour vérifier l'url, il y à une nouvelle version !
http://fasm.sourceforge.net
__________________

Smortex

Les FAQ Assembleur - Linux
In The Beginning Was The Command Line Neal Stephenson
Smortex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2003, 12h13   #4
Membre à l'essai
 
Inscription: juillet 2002
Localisation: brest
Messages: 45
lut smortex c'est moi deqth apres stx asmed j'ai pris fasm mais ya plein de truc qui son differents de tasm: PROC NEAR il en veu pas, les include je sais pas comment ca marche, l'ecriture directe en mem graphique ca marche pas pareil non plus... si il existe de laide sur fasm (et des exemples ) ce serait surement plus facile de changer!
forthx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2003, 19h18   #5
Membre émérite
 
Inscription: mai 2002
Messages: 728
Personellement, je le trouve moins ch*** que certains compilos : un programme genre :
Code :
  org 100h
  Xor Ax,Ax
  Int 16h
  Ret
Marche Impec ! Pas besoin de trimbaler "Machin:", "END Machin" et autre...

Certe, la doc de FASM est relativement pauvre (Elle n'est pas terminée), mais je ne trouve pas que ca soit un problème car :
- On trouve pas mal d'exemples sur le site de FASM.
- On peut trouver un OS développé entièrement avec FASM.
- Les sources sont fournies avec l'exe.

Généralement, les modifications à apporter à un code sont mineures : Es:[Di] devient [Esi] ; JMP LONG devient JMP FAR, ... Mais ca n'est qu'une question d'habitude.

Le seul défaut que je trouve à se compilateur est au niveau de la recherche des fichiers include : il ne scane pas le dossier du .asm que l'on compile et cela peut poser des problèmes si on compile depuis un autre dossier (Je vais en parler à l'auteur, sauf si cette fonctionnalité à été ajoutée dans la dernière version).
Smortex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2003, 17h20   #6
BuG
Membre à l'essai
 
Inscription: novembre 2002
Messages: 44
Par défaut ...

Ya masm aussi un assembleur sous windows, je crois que c'est un Freeware développé par micro$oft allucinant non ?

http://www.protools.cjb.net

Je suis pas sur de l'URL.

Salut @+
BuG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2003, 11h51   #7
Candidat au titre de Membre du Club
 
Inscription: mars 2002
Messages: 24
moi j'utilise NASM que je trouve plutot bien :
* Gratuit
* Existe sous Windows et Linux
* pas chiant
* Documenté correctement
Argh! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2003, 16h32   #8
Membre du Club
 
Avatar de Causa Sui
 
Inscription: mai 2003
Messages: 102
Je suis peut-être un mais j'ai toujours du mal avec FASM...
Sinon vu que je ne suis qu'un noob j'utilise encore parfois le debug de windows
Causa Sui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 08h40   #9
Invité de passage
 
Inscription: juin 2003
Messages: 2
Par défaut A propos de compilateurs ASM

Bonjour a tous...

Pour info, vous pourrez trouver tout ce dont vous avez besoin pour MASM32 ici :
http://www.chez.com/asmgges/index.htm
qui integre une IDE, les LIBS, les en-tetes, etc, etc... Plus les excellents "tutoriaux" de Iczelion !

Il existe aussi un autre compilateur pour Win32 qui s'appele SpAsm bien equipe et disponible ici :
http://betov.free.fr/SpAsm.html

NOTA : MASM est base sur la syntaxe INTEL, tandis que SpAsm est comme NASM, c.a.d base sur la syntaxe AT&T

Avantages et inconvenients :
MASM est disponible que sous Win32
Syntaxe plus intuitive
Facilite d'utilisation
En plus la syntaxe utilisee est la meme que lors de l'integration de code ASM sous VC++ (portage code...)

NASM est dispo sous Win32 et Linux
Syntaxe plus precise, mais moins intuitive
Forte communaute de developpeur

Voila c'est tout..


Dernière modification par Alcatîz ; 18/06/2006 à 08h00.
Android317 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 08h59   #10
ovh
Responsable Linux
 
Avatar de ovh
 
Inscription: mai 2002
Âge: 32
Messages: 3 582
J'utilisais TASM / TASM32, mais récemment je me suis mis à NASM et il m'a séduit ! Certes au début il faut un peu s'habituer à la syntaxe, mais la doc précise tout ce qu'il faut savoir, et d'autre part, la syntaxe est plus simple et plus rigoureuse (plus proche de la machine). Attention toutefois, NASM n'est qu'un assembleur, il te faut en + un linker pour produire du code exécutable. Sous Win32, le couple NASM + ALINK marche très bien, à condition d'avoir également les fichiers win32n.inc et win32.lib (respectivement pour nasm et alink).
Voici un "hello world" version nasm :
Code :
; NASM pour win32 : premier test
; Compile: nasmw -fobj prog.asm -p C:\nasm\inc\win32n.inc
;          alink prog.obj -oPE -o prog.exe C:\alink\win32.lib

extern MessageBoxA
extern ExitProcess


section .data use32
  titre db 'Premier test',0
  msg   db 'Voilà ça marche NASM ;)',0


section .text use32

..start                   ; entry point
  push	0
  push	titre
  push	msg
  push	0
  call	MessageBoxA
  
  push	0
  call	ExitProcess
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 12h08   #11
Invité de passage
 
Inscription: juin 2003
Messages: 2
Tres juste OVH, il te faut en effet un linker pour creer un PE. ALINK est un excellent choix
Ceci dit, si tu commence a Start Adress 0100h, et que tu fais un *.com tu n'en a pas besoin
Android317 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 18h53   #12
ovh
Responsable Linux
 
Avatar de ovh
 
Inscription: mai 2002
Âge: 32
Messages: 3 582
Effectivement, et tu me fais penser que nasm permet de créer facilement aussi des secteurs de boot par exemple, mais aussi d'inclure des fichiers binaires dans le source etc. Bref, nasm c'est du tout bon
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 23h47   #13
Membre émérite
 
Inscription: juillet 2002
Messages: 828
Je ne vois pas en quoi la syntaxe est plus rigoureuse ou plus logique, ni même plus proche de la machine
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2003, 12h25   #14
Membre du Club
 
Avatar de Causa Sui
 
Inscription: mai 2003
Messages: 102
Je me posais une question sur lec ompilateurs... est-ce que ils sont compatible avec les prcocesseurs les plus avancés, je veux dire: signalent-ils comme faux les intructions de 3DNow! d'AMD, par exemple, ou supportent-ils les intructions basées sur des reg64?
Causa Sui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2003, 14h15   #15
Membre régulier
 
Avatar de TangiX
 
Inscription: juin 2003
Messages: 139
Envoyer un message via MSN à TangiX
cela depend des compilateurs certains propose les instructions tel que sse 3DNow! ect.
sinon il bloque puisqu'il ne connait pas l'instruction
il est toutefois possible de coder toutes les instructions en langage machine :
db 90h = Nop
__________________
FAQ Assembleur
TangiX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2003, 18h18   #16
ovh
Responsable Linux
 
Avatar de ovh
 
Inscription: mai 2002
Âge: 32
Messages: 3 582
Citation:
Envoyé par Blustuff
Je ne vois pas en quoi la syntaxe est plus rigoureuse ou plus logique, ni même plus proche de la machine
Parce que NASM ne s'encombre pas de pseudo-code comme les "proc" de TASM par exemple. Au niveau des adresses effectives, même chose : le mot-clé "offset" est inutile, et la syntaxe de nasm impose de mettre toute l'adresse entre crochets. Pas moyen donc de mettre mov ax, es:[bx] mais il faudra mettre mov ax, [es:bx]. Et c'est comme ça que ça apparaît dans un déboggueur --> plus proche de la machine.

Plus de détails ici :
http://194.65.3.199/win32asm/tutorial/gij.html
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2003, 23h50   #17
Membre émérite
 
Inscription: juillet 2002
Messages: 828
- La directive PROC permet de definir une convention d'appel et de générer des codes prologues/epilogues. Je ne vois pas en quoi elle est inutile.

- Le mot clé offset a son utilité. Ces deux assembleurs on choisi d'opter pour la convention d'ecriture dans laquelle un nom de variable designe son contenu. Ansi après la déclaration :

Code :
Variable dd ?
'Variable' designe le contenu de la mémoire. D'où dans se modèle l'utilité du mot clé offset. Maintenant ce qui justufue ce choix, est la compatibilité avec les langafges de haut niveau. Il est absurded de programmer entièrement en asm c'est important. En C après la déclaration :

Code :
  int Variable;
'Variable' designe bien le contenu de la variable, et &Variable son adresse. En cela cette syntaxe est très coherente.

- Dans le débuguerur que j'utilise la syntaxe es:[bx] est utilisée.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2003, 09h54   #18
Membre éclairé
 
Inscription: décembre 2002
Messages: 337
- Pour être utilisateur de TASM, je n'utilise jamais les PROC, donc même dans TASM ça peut être oublié s'il le faut

- Je suis d'accord avec Blustuff que l'offset est important. Il y a une différence énorme entre :
Code :
mov ax,variable
et
Code :
mov ax,offset variable
Le premier est codé par A1h et met dans AX le contenu de 'variable'. Dans le deuxième cas (codé B8h), on met dans AX l'adresse (offset) de où se situe 'variable '. Y'a quand même une énorme différence qui apporte souvent des erreurs de programmation

- Au niveau du debugger, moi aussi je n'ai que des es:[bx] et pas de [es:bx]. Mais je pense que c normal car on doit avoir les mêmes debuggers avec Blustuff. Par contre, dans toute la litérature que j'ai lu, tout le monde adressé de la manière es:[bx] et pas de la manière [es:bx]. A se demander si ce n'est pas une "norme" ?
__________________
Ma boule de cristal s'était éclaircie et puis plus rien. Alors je me suis mis à internet et maintenant j'ai plus de renseignements qu'avec cette satané boule .....
le mage tophinus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2003, 11h53   #19
Candidat au titre de Membre du Club
 
Inscription: juin 2003
Messages: 29
L'équivalent avec NASM serait:
Code :
        mov        ax,[variable]        ; Place le contenu de variable dans AX
Code :
        mov        ax,variable          ; Place l'adresse de variable dans AX
Il n'y a pas d'ambiguités possibles.
AznOod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2003, 12h43   #20
Membre éclairé
 
Inscription: décembre 2002
Messages: 337
je préfèrerais quand même un compilateur avec comme notation :
Code :
mov ax,[variable]
mov ax,offset variable
Comme ça, il n'y aurait pas d'ambiguité, surtout pour les débutants
__________________
Ma boule de cristal s'était éclaircie et puis plus rien. Alors je me suis mis à internet et maintenant j'ai plus de renseignements qu'avec cette satané boule .....
le mage tophinus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h36.


Vos questions techniques : forum d'entraide Assembleur - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.