Compilateur Assembleur [Résolu]

Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 30 déc. 2004 à 14:08 - 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

27 réponses

Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 2 janv. 2005 à 18:18
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Nukleos
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 30 déc. 2004 à 15:11
0
Utile
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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 30 déc. 2004 à 15:51
0
Utile
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_
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 31 déc. 2004 à 22:17
0
Utile
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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 1 janv. 2005 à 18:56
0
Utile
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_
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 19:09
0
Utile
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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 1 janv. 2005 à 21:43
0
Utile
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_
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 22:19
0
Utile
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
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 1 janv. 2005 à 22:22
0
Utile
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
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 1 janv. 2005 à 22:43
0
Utile
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
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 1 janv. 2005 à 22:59
0
Utile
.CODE
Start: INVOKE USER32:MessageBoxA,0,"Bonjour monde !","Un exemple rikiki.",40h
RET

// Plus rikiki c'est dur !
Commenter la réponse de Nukleos
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 23:01
0
Utile
Il serait donc encore 'moderne' d'ecrire en asm ?

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 23:03
0
Utile
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
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 1 janv. 2005 à 23:11
0
Utile
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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 1 janv. 2005 à 23:22
0
Utile
"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_
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 23:26
0
Utile
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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 1 janv. 2005 à 23:40
0
Utile
..............................
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_
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 1 janv. 2005 à 23:53
0
Utile
'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
Deimos_ 15 Messages postés jeudi 15 juillet 2004Date d'inscription 29 juin 2005 Dernière intervention - 2 janv. 2005 à 00:06
0
Utile
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_
Nukleos 31 Messages postés vendredi 31 décembre 2004Date d'inscription 31 juillet 2008 Dernière intervention - 2 janv. 2005 à 18:53
0
Utile
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.

Compilateur Assembleur - page 2