Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 27/01/2003, 16h20   #1
forthx
Membre actif
 
Homme Mikaël
Chercheur en informatique
Inscription : juillet 2002
Messages : 109
Détails du profil
Informations personnelles :
Nom : Homme Mikaël
Localisation : Canada

Informations professionnelles :
Activité : Chercheur en informatique

Informations forums :
Inscription : juillet 2002
Messages : 109
Points : 184
Points : 184
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!
__________________
portfolio
forthx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2003, 19h55   #2
2PluS4
Membre régulier
 
Inscription : septembre 2002
Messages : 96
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 96
Points : 98
Points : 98
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
Smortex
Membre Expert
 
Inscription : mai 2002
Messages : 727
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 727
Points : 1 361
Points : 1 361
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
forthx
Membre actif
 
Homme Mikaël
Chercheur en informatique
Inscription : juillet 2002
Messages : 109
Détails du profil
Informations personnelles :
Nom : Homme Mikaël
Localisation : Canada

Informations professionnelles :
Activité : Chercheur en informatique

Informations forums :
Inscription : juillet 2002
Messages : 109
Points : 184
Points : 184
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!
__________________
portfolio
forthx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2003, 19h18   #5
Smortex
Membre Expert
 
Inscription : mai 2002
Messages : 727
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 727
Points : 1 361
Points : 1 361
Personellement, je le trouve moins ch*** que certains compilos : un programme genre :
Code :
1
2
3
4
  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
Invité régulier
 
Inscription : novembre 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 44
Points : 8
Points : 8
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
Argh!
Futur Membre du Club
 
Inscription : mars 2002
Messages : 24
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 24
Points : 15
Points : 15
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
Causa Sui
Membre actif
 
Avatar de Causa Sui
 
Inscription : mai 2003
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 133
Points : 174
Points : 174
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
Android317
Invité de passage
 
Inscription : juin 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2
Points : 2
Points : 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..

Android317 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2003, 08h59   #10
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 762
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 762
Points : 6 259
Points : 6 259
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
; 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
Android317
Invité de passage
 
Inscription : juin 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2
Points : 2
Points : 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
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 762
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 762
Points : 6 259
Points : 6 259
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
Blustuff
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
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
Causa Sui
Membre actif
 
Avatar de Causa Sui
 
Inscription : mai 2003
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 133
Points : 174
Points : 174
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
TangiX
Membre habitué
 
Avatar de TangiX
 
Inscription : juin 2003
Messages : 139
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 139
Points : 144
Points : 144
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
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 762
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 762
Points : 6 259
Points : 6 259
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
Blustuff
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
- 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 :

'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 :

'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
le mage tophinus
Membre confirmé
 
Inscription : décembre 2002
Messages : 339
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 339
Points : 222
Points : 222
- 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 :
et
Code :
1
2
 
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
AznOod
Nouveau Membre du Club
 
Inscription : juin 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 29
Points : 32
Points : 32
L'équivalent avec NASM serait:
Code :
1
2
 
        mov        ax,[variable]        ; Place le contenu de variable dans AX
Code :
1
2
 
        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
le mage tophinus
Membre confirmé
 
Inscription : décembre 2002
Messages : 339
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 339
Points : 222
Points : 222
je préfèrerais quand même un compilateur avec comme notation :
Code :
1
2
3
 
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
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web