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 ...
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.
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 !
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
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 !!!
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.
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 ;)
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.
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)
"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 ^^
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.
..............................
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 ...
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 !