JWasm, l'avenir assuré de Masm pour le 32/64 bits
Page 1 sur 1 • Partager •
JWasm, l'avenir assuré de Masm pour le 32/64 bits
Petit historique des faits
Beaucoup de programmeurs étaient soucieux de l'avenir de Masm. En effet, Masm n'a plus été mis à jour depuis longtemps par Microsoft. Bien que cela n'était pas vraiment nécessaire car Masm était devenu LA référence et ne souffrait pas de vrai défaut, l'arrivée du 64 bits a changé la donne. Masm32 ne permet pas de compiler un projet pour un système 64 bits.
Il y a quelques années de cela Microsoft a proposé une nouvelle version de Masm permettant de compiler du code en 64 bits. Mais cette version n'est pas prévue pour les développeurs en assembleur. Cette version a été amputé de tout ce qui a fait la richesse de Masm en programmation assembleur: impossible de se servir de macros ou de fonctions de haut niveau telles que IF-ENDIF par exemple. Autrement dit il est bon à jeter sauf pour les utilisateurs de Visual Studio, il a été conçu pour eux (utiliser l'assembleur dans un projet C++ par exemple).
Alors qu'une partie de la communauté commençait à se tourner vers la concurrence, Fasm ou encore GoAsm, voilà-t-il pas qu'un petit génie a concocté dans son coin, au départ pour lui-même et quelques programmeurs appréciant la syntaxe de Masm, un compilateur entièrement compatible avec Masm et offrant la possibilité de compiler le code sur 64 bits ! Avec le temps sa compatibilité a été portée jusqu'aux macros de Masm, ce qui a certainement été un énorme travail de la part de son auteur...sans compter qu'il corrige des bugs propres à Masm et se permet le luxe d'apporter de nouvelles compatibilités (SSE4) et d'être plus rapide.
Chapeau bas donc au sieur en question et dévoilons sans plus attendre l'heureux bébé: JWasm.
Pour installer JWasm c'est simple, vous pouvez consulter ce tutoriel.
Jwasm reconnaît les syntaxes de commande de Masm et aucune retouche ne sera nécessaire dans vos projets (sauf exceptions particulières).
Site de l'auteur (Japheth)
http://www.japheth.de/JWasm.html
Caractéristiques principales de JWasm
JWasm is a free MASM-compatible assembler with these features:
* native support for output formats Intel OMF, MS Coff (32- and 64-bit), Elf (32-and 64-bit), Bin and DOS MZ.
* precompiled JWasm binaries are available for DOS, Windows and Linux. For OS/2 and FreeBSD, makefiles are supplied.
* Instructions up to SSE4.2 are supported.
* JWasm is written in C. The source is portable and has successfully been tested with Open Watcom, MS VC, GCC and more.
* As far as programming for Windows is concerned, JWasm can be used with both Win32Inc and Masm32. Since v2.01, it will also work with Sven B. Schreiber's ancient WALK32.
* C header files can be converted to include files for JWasm with h2incX.
* JWasm's source code is released under the Sybase Open Watcom Public License, which allows free commercial and non-commercial use.
Beaucoup de programmeurs étaient soucieux de l'avenir de Masm. En effet, Masm n'a plus été mis à jour depuis longtemps par Microsoft. Bien que cela n'était pas vraiment nécessaire car Masm était devenu LA référence et ne souffrait pas de vrai défaut, l'arrivée du 64 bits a changé la donne. Masm32 ne permet pas de compiler un projet pour un système 64 bits.
Il y a quelques années de cela Microsoft a proposé une nouvelle version de Masm permettant de compiler du code en 64 bits. Mais cette version n'est pas prévue pour les développeurs en assembleur. Cette version a été amputé de tout ce qui a fait la richesse de Masm en programmation assembleur: impossible de se servir de macros ou de fonctions de haut niveau telles que IF-ENDIF par exemple. Autrement dit il est bon à jeter sauf pour les utilisateurs de Visual Studio, il a été conçu pour eux (utiliser l'assembleur dans un projet C++ par exemple).
Alors qu'une partie de la communauté commençait à se tourner vers la concurrence, Fasm ou encore GoAsm, voilà-t-il pas qu'un petit génie a concocté dans son coin, au départ pour lui-même et quelques programmeurs appréciant la syntaxe de Masm, un compilateur entièrement compatible avec Masm et offrant la possibilité de compiler le code sur 64 bits ! Avec le temps sa compatibilité a été portée jusqu'aux macros de Masm, ce qui a certainement été un énorme travail de la part de son auteur...sans compter qu'il corrige des bugs propres à Masm et se permet le luxe d'apporter de nouvelles compatibilités (SSE4) et d'être plus rapide.
Chapeau bas donc au sieur en question et dévoilons sans plus attendre l'heureux bébé: JWasm.
Pour installer JWasm c'est simple, vous pouvez consulter ce tutoriel.
Jwasm reconnaît les syntaxes de commande de Masm et aucune retouche ne sera nécessaire dans vos projets (sauf exceptions particulières).
Site de l'auteur (Japheth)
http://www.japheth.de/JWasm.html
Caractéristiques principales de JWasm
JWasm is a free MASM-compatible assembler with these features:
* native support for output formats Intel OMF, MS Coff (32- and 64-bit), Elf (32-and 64-bit), Bin and DOS MZ.
* precompiled JWasm binaries are available for DOS, Windows and Linux. For OS/2 and FreeBSD, makefiles are supplied.
* Instructions up to SSE4.2 are supported.
* JWasm is written in C. The source is portable and has successfully been tested with Open Watcom, MS VC, GCC and more.
* As far as programming for Windows is concerned, JWasm can be used with both Win32Inc and Masm32. Since v2.01, it will also work with Sven B. Schreiber's ancient WALK32.
* C header files can be converted to include files for JWasm with h2incX.
* JWasm's source code is released under the Sybase Open Watcom Public License, which allows free commercial and non-commercial use.
Dernière édition par faiseur le Ven 25 Juin - 12:47, édité 2 fois

faiseur- Admin
- Messages: 371
Date d'inscription: 02/05/2010

Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
Salut , 
Ha ça c'est une bonne nouvelle
moi qui justement ne voulais pas passer en 64bit et pour cause.
Là je vais pourvoir me lancer sur un autre pc.
Bravo à l'auteur de ce travail qui a du être titanesque.
@++
Ha ça c'est une bonne nouvelle
Là je vais pourvoir me lancer sur un autre pc.
Bravo à l'auteur de ce travail qui a du être titanesque.
@++

sp0ke- Messages: 23
Date d'inscription: 20/05/2010
Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
J'avais aussi des réticences pour passer à la programmation "64 bits" mais avec ce site je pense que je franchirai le pas rapidement. Sinon, il restait l'excellent GoAsm de J Gordon qui est aussi une référence. La syntaxe de GoAsm étant assez loin de celle utilisée par Masm, cela me rebutait de devoir apprendre un autre assembleur. GoAsm

Grincheux- Messages: 247
Date d'inscription: 17/05/2010
Age: 52
Localisation: Mathenay (39), France

Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
Pour ma part j'ai remplacé ml.exe dans mes projets par JWasm.exe depuis 4 semaines sans soucis. Japhet a vraiment fait un boulot incroyable... Je ne sais pas comment le remercier ce gars (je veux lui envoyer des fleurs
), il est trop discret.

faiseur- Admin
- Messages: 371
Date d'inscription: 02/05/2010

Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
Mercredi 23/6/2010 la version 2.03 de JWasm est sortie, considérée comme instable par l'auteur.
http://www.japheth.de/JWasm.html
Changelog:
http://www.japheth.de/JWasm.html
Changelog:
Changelog
__/__/2010, v2.03:
Bugfixes:
- invalid cmdline option behind source filename caused a GPF.
- expressions in a data field initializer were evaluated when the
structure was instanced. This gave incorrect results or assembly
errors if the expression contained an assembly time variable
( including $ ).
- INVOKE directive: if register EAX|RAX was used for indirect addressing
of a parameter, there was no check if the content of the register has
been overwritten previously due to an ADDR operator.
- INVOKE directive, 64-bit: if a parameter beyond the first four was an
address which had to be loaded into register RAX to store it onto the
stack, the generated source was either invalid or a GPF occured.
- TYPEDEF directive: pointer definitions did use the default size for
data pointers, which isn't correct if the pointer is defined as a
function pointer and memory model is COMPACT or MEDIUM.
- 64-bit: assembly time variables or immediate operands with a value
magnitude > 32 bits were rejected.
- macro expansion: expansion operator at the start of a line and more
than one macro function call within this line might have resulted
in garbage.
- DUP operator: count (first operand) was rejected if it was a string.
- float initializer in BSS segments wasn't rejected.
- OMF format: when a listing was to be written (-Fl) and a large array
was defined, a GPF might have occured.
- error 'Symbol redefinition' occured if an equate's expression contained
another equate which was the result of a subtraction of 2 labels AND
a phase error caused this difference to change.
- comments weren't displayed in listing.
- in v1.96-2.02, if cmdline option -mf was set, the cpu wasn't
automatically set to a 386 as it was done before.
- format COFF: symbols defined as weak externals were created as normal
externals if the EXTERN directive was used for the definition.
- 64-bit: opcodes MOVSXD and CQO (both 64-bit) were missing.
- 64-bit: opcode CDQE was encoded without the REX prefix, thus it was
a CWDE in fact.
- 64-bit: QWORD type coercion for an immediate operand didn't force the
operand's size to 64-bit.
- 64-bit: MOVs with a segment register as operand didn't accept 64-bit
registers as the other operand ("mov ds, rax").
- 64-bit: SLDT, SMSW and STR didn't accept 32- and 64-bit registers as
operand.
- a displacement which didn't fit into 32-bits caused error 'Constant
value too large' in versions 2.00 - 2.02. This has been changed to a
warning (level 3) in 16- and 32-bit. In 64-bit code, it is still an
error.
- In expressions, types combined with the open (square) bracket operator
( "mov eax, DWORD [ebx] ) weren't rejected.
- comparisons of TYPE expressions did compare the type's size only.
Other changes:
- OW v1.9 used to create the JWasm binaries.
- opcode RDTSCP supported.

faiseur- Admin
- Messages: 371
Date d'inscription: 02/05/2010

Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
Salut,
Il me semble que quelques erreurs sur masm ce sont glissées dans le poste original.
La derniere version de masm est la 10.00.30319.01 fournit par le c++ express 10.0
La prochaine version sera surement dans visual studio.
Pour le 64 bits , le module est fourni régulièrement par les SDK qui se sont succéder ces dernières années.
ToutEnMasm
Il me semble que quelques erreurs sur masm ce sont glissées dans le poste original.
Beaucoup de programmeurs étaient soucieux de l'avenir de Masm. En effet, Masm n'a plus été mis à jour depuis longtemps par Microsoft. Bien que cela n'était pas vraiment nécessaire car Masm était devenu LA référence et ne souffrait pas de vrai défaut, l'arrivée du 64 bits a changé la donne. Masm32 ne permet pas de compiler un projet pour un système 64 bits.
La derniere version de masm est la 10.00.30319.01 fournit par le c++ express 10.0
La prochaine version sera surement dans visual studio.
Pour le 64 bits , le module est fourni régulièrement par les SDK qui se sont succéder ces dernières années.
ToutEnMasm
toutenmasm- Messages: 12
Date d'inscription: 10/09/2010

Re: JWasm, l'avenir assuré de Masm pour le 32/64 bits
Je corrige, merci Toutenmasm. En passant, j'ai vu quelque part dans le Masmforum que quelqu'un a développé des macros pratiques pour se servir de boucles IF-ENDIF et d'autres fonctions haut niveau avec Masm 9 ou 10. Les macros seraient donc utilisables avec les nouvelles versions de Masm, ce que je ne savais pas.
_________________
Site perso: http://www.faiseur.net/

faiseur- Admin
- Messages: 371
Date d'inscription: 02/05/2010

Sujets similaires» Parrainage pour les novices
» Fiche de RPs pour John
» Hack pour les débutant
» MediStory pour iPad
» Commande pour Forum rpg
» Fiche de RPs pour John
» Hack pour les débutant
» MediStory pour iPad
» Commande pour Forum rpg
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum




