Compilateur Assembleur [Résolu]

Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
- - Dernière réponse :  statismeles - 25 sept. 2005 à 21:46
Bonjour à tous,

Je commence à programmer l'assembleur et je voudrais savoir quel est le soft le plus adapté puor compiler mes programmes ! Je tourne sous Windows XP, et j'ai donc un processeur 16 bits ...

Merci de me répondre ;) ++
Afficher la suite 

Votre réponse

20/27 réponses

Meilleure réponse
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
3
Merci
Voici une solution pour "compiler" les programmes 16 bits tels
ceux que tu trouves souvent dans les exemples.

Sous la ligne de commande,
taper : ML /C Bonjour.ASM
taper : LINK Bonjour.OBJ

ATTENTION: Il s'agit ici de LINK.EXE version 5.31 maxi !!!!!!
En effet la version que tu trouves dans MASM32 ne gère pas
les fichiers OBJ nécessaires pour MS-DOS.

Tu peux adapter le menu de MASM32 et créer le fichier BAT correspondant. MASM32 est modelable à souhait.

Si tu ne trouves pas cette version de LINK.EXE tu peux la
remplacer par FREELINK.EXE, et dans ce cas,
taper : FREELINK /C Bonjour.OBJ
pour obtenir Bonjour.COM
C'est cette version que je viens de tester avec succés.

a++

Patrick

Merci Nukleos 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de Nukleos
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Sous Win XP avec un processeur 16 bits !!! Ce sera le dernier gag pour 2004 ???

Prends MSAM32 ici:
http://www.movsd.com/

et ton processeur est surement 32 bits sinon un x64.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
llllooolll
Ha ouais, désolé j'ai raconté n'importe quoi avant, je venais de me lever :) et j'avais encore la tête dans le *** ! Ouais, jvoulais dire processeur 32 bits évidemment ... pas 16 bits O_o !
Merci en tout cas pour le lien !
Commenter la réponse de Deimos_
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
Bonjour,
ci-après tu trouveras un exemple réalisé avec l'assembleur le plus puissant (et gratuit) du monde PC.
J'espère que tu seras suffisement motivé pour t'y intéresser.
:clown)

Patrick.

/////////////////////////////////////////////////
// This sample is written for GoAsm & GoLink //
// http://www.godevtool.com //
/////////////////////////////////////////////////
; It runs under WinXP and requires no include or library.
; The EXE file will be ridiculous : 2 KB !!!
;
; Usage:
; - Save this text with the name "Tiny.ASM"
; Under the command line:
; - Type: GoAsm Tiny.ASM
; - Type: GoLink Tiny.OBJ
; - Type: Tiny.EXE

.CONST
Title: DB "An example of tiny programme",0
Message: BB "Hello world !",0

.CODE

Start: INVOKE USER32:MessageBoxA, 0, ADDR Message, ADDR Title, 40h /* = MB_ICONASTERISK */
RET
Commenter la réponse de Nukleos
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
Ouais, enfin moi je sais vraiment pas quoi utiliser comme compilateur pour assembleur ... je voudrais avoir masm (pas masm32) mais je le trouve pas sur google, impossible !
Maintenant j'ai nasm, qui est très bien, mais le tutorial que j'ai est fait pour masm ... alors la syntaxe change et tout ...
Et puis j'ai lu sur le forum que le meilleur c'était nasm ...... Et maintenant tu me dis de télécharger Goasm O_o !!!

Moi je sais vraiment plus quoi faire ^^
Commenter la réponse de Deimos_
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
MASMS32 utilise l'assembleur MASM de Microsoft.
Si tu veux faire des progs pour Windows, c'est exactement celui ci qu'il te faut, il utilise la syntaxe standard Intel, pas besoin d'apprendre des trucs exotiques.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
J'ai essayé avec MASM32 de compiler ce programme tout simple issu d'un tutorial :

.386
code segment use16
assume cs:code, ds:code, ss:code
org 100h
debut :
mov ah, 09
mov dx, offset message
int 21h
ret
message db "Bonjour monde",'$'
code ends
end debut

Rien à faire, il me renvoie touours la même erreur :
Assembling: C:\Documents and Settings\Admin\Bureau\code.asm
MASM : fatal error A1000: cannot open file : C:\Documents and Settings\Admin\Bureau\code.asm

J'ai essayé avec le .bat de blackwizzard, il me retourne exactement la même erreur ! Mais sur le chan irc de codes-sources, on m'a dit que masm32 est fait pour des programmes tournant avec win32, alors que là l'interruption 21h est une interruption DOS, et donc que je devais télécharger masm, l'ancienne version ...

C'est juste ? Pourquoi cette erreur sinon ?

Merci beaucoup de vos réponses, Brunews et Nukleos ;)
Commenter la réponse de Deimos_
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Prends mon bat dans cette source:
http://www.asmfr.com/code.aspx?id=23802

et bien entendu on evite de bosser dans des dossiers avec des espaces.

Sert a quoi de perdre encore du temps avec les interruptions ?

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
Les propos de BruNews sont fondés mais sais-tu que :
- MASM est écrit en C++.
- NASM est écrit en C.
- GoAsm est écrit en assembleur. (GoAsm bien sur !)
- RosAsm est écrit en assembleur. (RosAsm bien sur !)
- FAsm est écrit en assembleur. (FAsm bien sur !)

Se fier aux mots qui inspirent confiance:
- "Microsoft" MASM.
- Syntaxe "Intel".
est une erreur que font beaucoup de personnes.
(Moi-même je l'ai faite)

C'est pourquoi après de nombreuses ANNÉES de recherches sur Internet j'ai enfin pu trouver un assembleur MODERNE : GoAsm.
De plus cet assembleur est accompagné de plusieurs
autres outils qui remplacent avantageusement ceux de Microsoft
et forment un ensemble cohérent et FIABLE.
Le site godevtool.com est largement didactique.

Certains te feront remarquer que tous ces outils:
- sont écrits par une seule personne, Jeremy Gordon.
- en sont encore à la version 0.xx.
- ne sont pas compatibles MS-DOS.
- ne sont pas GPL.

C'est vrai, mais à mes yeux la balance est toujours
en faveur de GoAsm.
Les inconvénients des "trucs exotiques" (dixit BruNews) n'en sont plus quand il existe des forums pour cela...
:shy)
Patrick.
Commenter la réponse de Nukleos
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
Extraits choisis:

"code 16 bits"

"interruption 21h"

"on evite de bosser dans des dossiers avec des espaces."

Tout cela respire la modernité...

Patrick

P.S.: As-tu essayé de compiler Tiny.ASM ?
Commenter la réponse de Nukleos
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
.CODE
Start: INVOKE USER32:MessageBoxA,0,"Bonjour monde !","Un exemple rikiki.",40h
RET

// Plus rikiki c'est dur !
Commenter la réponse de Nukleos
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Il serait donc encore 'moderne' d'ecrire en asm ?

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
et ton exemple, tu appelles cela de l'ASM ?

c'est le meme sabir que certains emploient dans MASM32, rien de plus.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
Bah ! Il me semblait que sur ce forum il y avait des passionnés
d'assembleur. J'ai du me tromper.
(C'est vrai qu'à la vue de MVP VC++ j'aurais du réfléchir)

Salutation.
Commenter la réponse de Nukleos
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
"Sert a quoi de perdre encore du temps avec les interruptions ?"
Je suis simplement le chemin du tutorial sur l'assembleur que je lis, je vais pas commencer à sauter des trucs parce que tu trouves que c'est du temps perdu !

J'ai testé ton .bat, ça marche pas non plus ... Le sujet par un peu en live, mais je voudrais juste un programme permettant de compiler correctement mon code moi ^^

Merci, @+
Commenter la réponse de Deimos_
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Ah mais j'adore l'ASM mais seulement quans ça ressemble a de l'ASM et surtout qu'on l'emploie pour ce a quoi il devrait servir, OPTIMISATION et pas autre chose.
Ce n'est assurement pas a coups de 'invoke' qu'on fera un prog optimise, tu n'auras aucune maitrise sur la parallelisation des instructions ni quoi que ce soit d'autre. Quand on est presse effectivement on code en C sur VS 2003 et la tu as un super compilo pour te sortir le meilleur asm possible.
Entre un bon C et un mauvais asm, y a pas photo du tout.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
..............................
Désolé, c'est pas que je veux faire chier, mais j'aimerais juste qu'on me réponde au message d'avant :

J'ai essayé avec MASM32 de compiler ce programme tout simple issu d'un tutorial :

.386
code segment use16
assume cs:code, ds:code, ss:code
org 100h
debut :
mov ah, 09
mov dx, offset message
int 21h
ret
message db "Bonjour monde",'$'
code ends
end debut

Rien à faire, il me renvoie touours la même erreur :
Assembling: C:\Documents and Settings\Admin\Bureau\code.asm
MASM : fatal error A1000: cannot open file : C:\Documents and Settings\Admin\Bureau\code.asm

J'ai essayé avec le .bat de blackwizzard, il me retourne exactement la même erreur ! Mais sur le chan irc de codes-sources, on m'a dit que masm32 est fait pour des programmes tournant avec win32, alors que là l'interruption 21h est une interruption DOS, et donc que je devais télécharger masm, l'ancienne version ...

C'est juste ? Pourquoi cette erreur sinon ?

Merci beaucoup ... +
Commenter la réponse de Deimos_
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
'cannot open file...' faut d'abord regler ton histoire de path dans le *.bat qui lance l'assemblage, ton fichier asm n'est pas trouve par masm.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
15
Date d'inscription
jeudi 15 juillet 2004
Dernière intervention
29 juin 2005
0
Merci
J'ai mis le bon path dans le .bat de blackwizzard et même, il me met le même message d'erreur quand je passe par masm32 même ... donc là il peut pas se tromper normalement !
Commenter la réponse de Deimos_
Messages postés
31
Date d'inscription
vendredi 31 décembre 2004
Dernière intervention
31 juillet 2008
0
Merci
FREELINK est ici:
http://www.users.uswest.net/~sdiggins/freelink.zip

P.S. : Évite de travailler avec le texte source sur le bureau,
c'est pratique mais la "command line" n'apprécie pas.
?-)
Commenter la réponse de Nukleos

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.