Download & history
Current version of EuroAssembler as well as previous published versions are available
on this page. See also the chapter Installation in manual.
A copy of the latest version is also available for
download under aliased name
euroasm.zip.
If you don't want to compile EuroTools from their sources,
executable files for Linux and Windows are available here in the archive eurotool.zip.
If you want to stay informed about new versions, follow
@EuroAsm on X/Twitter or
join RSS forum feed.
For automatic check of new versions there is a link
https://euroassembler.eu/version.
- Version 20251110
-
Download: euroasm.20251110.zip
Release date: 2025 Nov 10
TimeStamp: 1762732800
File size: 7050396
File hash MD5: 5C2C8971A440661D3087533F76E40396
What's new:
- A new program option MaxErrors= which limits the number of
displayed warning and error messages with severity code above 3.
- New machine instructions
VPOPCNTB,
VPOPCNTW,
VPOPCNTD,
VPOPCNTQ,
see the test t6247.
- A new EuroAssembler system variable %^ERRORLEVEL.
- A new symbol attribute RVA#
which returns virtual address relative to the image base in 32 bits.
- Default program option IconFile=
was changed from
euroasm.ico
to empty. By default no icon is added to PE/DLL programs
made by EuroAssembler, unless PROGRAM Format=PE, IconFile=euroasm.ico is explicitly specified.
- Instructions VPCMPEQB crashed with registers ZMM. Fixed.
- Macrolibrary
winstime.htm
was renamed to time.htm
and completed with some Linux macros.
- A new macrolibrary ansi.htm for pseudographic by ANSI escape sequences.
- Six new applications EuroTool for 64-bit Linux and Windows written in €ASM
were added to the sample projects under the subdirectory
eurotool
.
See their description under the name EuroTool.
- Version 20250318
-
Download: euroasm.20250318.zip
Release date: 2025 Mar 18
TimeStamp: 1742256000
File size: 5741401
File hash MD5: 621D3CD36630AC0B857178677F4E8D46
What's new:
- Version for Linux is available, its name is
euroasm.x
.
Scripts easource/eamake.cmd
and easource/eamake.sh
are now available
to create executable files in Windows and Linux.
- The global configuration file is no longer located in the same directory as the executable file.
It has been moved to
/etc/eurotool/euroasm.ini
in Linux and to
%AppData%\eurotool\euroasm.ini
in MS Windows.
- UTF-8 BOM in the beginning of €ASM source is now ignored, if it exists.
- Added new machine instructions ENDBR32,
ENDBR64.
- A new EuroAssembler system variable %^ERRORLEVEL.
- New messages I0621, I0622 with severity 0
when near or far LOOP or JxCXZ is assembled.
- New message I0623 with severity 0 when near and far Jcc using proxy-jump is assembled.
- Macrolibrary "memory.htm" was renamed to memory32.htm.
- New macrolibrary memory64.htm.
- €ASM crashed when a program starts with pseudoinstruction ALIGN
sooner than a section was established. Fixed.
- Instructions Shuffle incorrectly reported W2461 when the immediate operand was above 7.
This concerns
SHUFPS,
SHUFPD,
SHUFD,
t3755.
- Fixed a bug in macrolibrary string64.htm.
- Version 20240831
-
Download: euroasm.20240831.zip
Release date: 2024 Aug 31
TimeStamp: 1725062400
File size: 5432336
File hash MD5: 0D20E06A0681AFE0CCF5211C75768EF9
What's new:
- New program formats
BOOT,
ELF,
ELFX,
ELFSO
- New machine instructions
SAVEPREVSSP
RSTORSSP
SETSSBSY
CLRSSBSY
INCSSPD
INCSSPQ
ENCLV
ENDBR32
ENDBR64
HRESET
SENDUIPI
SERIALIZE
UMONITOR
UMWAIT
- New macrolibraries
lins.htm and
linsfile.htm with Linux structures and constants.
- New macrolibrary winf64.htm.
winfile.htm
was renamed to winf32.htm
.
- New macrolibrary debug.htm for static run-time debugging
by taking snapshots of CPU state (registers) at runtime.
- New sample projects for testing file function wrappers
twinf32.htm,
twinf64.htm,
tlinf32.htm,
tlinf64.htm.
- Manual was translated to the Czech language.
- When system variables
%^SourceLine,%^SourceFile,%^SourceName,%^SourceExt
are used in a macro, they return position of the macro invokation.
Previous €ASM versions returned fixed position withing the macro definition,
which wasn't much useful.
- New €ASM system variable
%^PASS which returns pass number of current program.
Useful to suppress %ERROR message in macros which check the presence of not-yet-defined symbol.
- Global symbols in COFF|ELF symbol table are sorted alphabetically.
- Decorator Disp8*N is no longer displayed in the listing dump when N=0.
- Default value SizeOfStackCommit was increased from 4K to 8K.
- Instructions XGETBV and
XSETBV no longer require features
EUROASM CPU=686,SPEC=ENABLED.
- Fixed when the prefix REX.B was missing in encoding
XCHG rAX,r64.
This was not detected by t3202.
- Fixed an invalid treatment of E6555 Offset out of section limits..
- Fixed an exception when statement GROUP or SEGMENT didn't have a [label].
- Fixed a minor bug in GetArgWin32W@RT.
- Fixed
MOV AX, [ES:1234h] didn't recognize segment override.
- Fixed when
XCHG EAX,EAX in 64bit mode was incorrectly encoded as 0x90 instead of 0x87C0.
- Version 20240831
-
Download: euroasm.20240831.zip
Release date: 2024 Aug 31
TimeStamp: 1725062400
File size: 5247623
File hash MD5: DBC7E45387CDC0D952948D36DF25CC21
What's new:
- New program formats
BOOT,
ELF,
ELFX,
ELFSO
- New machine instructions
SAVEPREVSSP
RSTORSSP
SETSSBSY
CLRSSBSY
INCSSPD
INCSSPQ
ENCLV
ENDBR32
ENDBR64
HRESET
SENDUIPI
SERIALIZE
UMONITOR
UMWAIT
- New macrolibraries
lins.htm and
linsfile.htm with Linux structures and constants.
- New macrolibrary winf64.htm.
winfile.htm
was renamed to winf32.htm
.
- New macrolibrary debug.htm for static run-time debugging
by taking snapshots of CPU state (registers) at runtime.
- New sample projects for testing file function wrappers
twinf32.htm,
twinf64.htm,
tlinf32.htm,
tlinf64.htm.
- Manual was translated to the Czech language.
- When system variables
%^SourceLine,%^SourceFile,%^SourceName,%^SourceExt
are used in a macro, they return position of the macro invokation.
Previous €ASM versions returned fixed position withing the macro definition,
which wasn't much useful.
- New €ASM system variable
%^PASS which returns pass number of current program.
Useful to suppress %ERROR message in macros which check the presence of not-yet-defined symbol.
- Global symbols in COFF|ELF symbol table are sorted alphabetically.
- Decorator Disp8*N is no longer displayed in the listing dump when N=0.
- Default value SizeOfStackCommit was increased from 4K to 8K.
- Instructions XGETBV and
XSETBV no longer require features
EUROASM CPU=686,SPEC=ENABLED.
- Fixed when the prefix REX.B was missing in encoding
XCHG rAX,r64.
This was not detected by t3202.
- Fixed an invalid treatment of E6555 Offset out of section limits..
- Fixed an exception when statement GROUP or SEGMENT didn't have a [label].
- Fixed a minor bug in GetArgWin32W@RT.
- Fixed
MOV AX, [ES:1234h] didn't recognize segment override.
- Fixed when
XCHG EAX,EAX in 64bit mode was incorrectly encoded as 0x90 instead of 0x87C0.
- Version 20190402
-
Download: euroasm.20190402.zip
Release date: 2019 Apr 2
TimeStamp: 1554163200
File size: 4285062
File hash MD5: 045E3181C5570F486D5FBB3D406E8880
What's new:
- Relative proxy jumps in [.idata] section in PE64 format changed to ADDR=ABS.
- Virtual segment size is now trimmed to the raw emitted size at the start of linker.
- Size specification in macros Sto* and Lod* in libraries
cpuext*.htm
were changed
but they remain backward compatible.
- New sample projects for testing of
cpuext*.htm
and sort*.htm
macrolibraries:
tmac16.htm,
tmac32.htm,
tmac64.htm.
- Version 20190319
-
Download: euroasm.20190319.zip
Release date: 2019 Mar 19
TimeStamp: 1552953600
File size: 4282019
File hash MD5: 9DFFFCD7783F522B484F2882839B00D9
What's new:
- Pseudoinstruction %SETB
with no operand is now evaluated as 0 (false).
- €ASM no longer creates record in COFF symbol table for pseudosegment [.scalars].
COFF based files are now 18 bytes shorter.
- Member Machine in COFF file header is hardwired to
0x8664 in 64bit programs,
and to 0x014C in 16/32bit programs.
It's no longer necessary to explicitly specify EUROASM AMD=Enabled when COFF-based files for
64bit Windows are created.
- Linker's ListMap now displays 64bit VA when ImageBase is above 4 GB. Section alignment is now displayed in hexa.
- When a standalone COFF or OMF object file is linked, it doesn't need to have any of its symbols referenced
in order to be selected for linking.
- Listing of macro-expanded lines (dump separator +)
didn't replace pipe character | with exclamation ! in line comments. Fixed.
- Addressing frame in 64bit mode sometimes preferred ADDR=ABS. Fixed.
- Fixed some bugs in RIP-relative relocations in 64bit mode.
- Names of some codepage encodings
were put in line with names used by EuroConvertor.
- Macros DecodeUTF8 in libraries stringXX.htm were enhanced by detection of the last incomplete UTF-8 character.
- Reorganization of macrolibraries.
stdcall.htm
was renamed to
stdcal32.htm. New macrolibraries
stdcal16.htm and
stdcal64.htm for standard-calling convention.
- New macrolibraries for interaction with OS and for calling conventions,
enhanced with option Fastmode=.
- Error in EuroConvertor 20190113 (exception when input UTF-8 was invalid) was fixed.
- Version 20190113
-
Download: euroasm.20190113.zip
Release date: 2019 Jan 13
TimeStamp: 1547337600
File size: 3998344
File hash MD5: 7AF604B5D036582518949B69578208C3
What's new:
- Literal symbols with different notation but identical value,
such as
=W 5, =W +5, =W(2+3),
now occupy the same memory in literal section.
- Linker of PE/DLL format incorrectly calculated virtual addresses of sections
when the stub file was bigger than 4KB.
- Instruction VPCMPESTRM and VPCMPESTRI now accept modifier DATA=DWORD or DATA=QWORD in 64bit mode
which specifies if the implicit length registers are EAX,EDX or RAX,RDX.
See the test t4610.
- Enhanced support for chaining of attributes,
see the test t1695.
- Instruction MOVSD didn't accept formats xmm1,xmm/m64 and xmm/m64,xmm.
Fixed, see the test t3213.
- Line continuation wich followed pseudooperation %MACRO wasn't parsed correctly.
- Fixed minor issue with parsing a literal in parenthesis.
- %DROPMACRO
now accepts operand asterix *
(drop all macros defined in current program and its parents).
- New sample program EuroConvertor
for conversion of text encoding.
- Some macrolibraries were updated. Macros for 64bit calling convention
are now provided in two variants, see
winabi.htm and
fastcall.htm.
- Version 20180928
-
Download: euroasm.20180928.zip
Release date: 2018 Sep 28
TimeStamp: 1538092800
File size: 3852325
File hash MD5: A44FB332A4C3EE28E716E63FE9BA323F
What's new:
- Order of emitted prefixes was changed in IiFlush
to
LOCK, OTOGGLE, ATOGGLE, REPE, REPNE, in accordance with other assemblers.
- Instruction PCMPESTRM and PCMPESTRI now accept modifier DATA=DWORD or DATA=QWORD in 64bit mode
which specifies if the implicit length registers are EAX,EDX or RAX,RDX.
See the test t3820.
- Explicit and implicit ALIGN now emits real multibyte NOP instructions
(0x0F14F... instead of series of 0x90) when CPU level is 686 or X64.
- Version 20180901
-
Download: euroasm.20180901.zip
Release date: 2018 Sep 1
TimeStamp: 1535760000
File size: 3838803
File hash MD5: E56A63A7060DAAD39603558FF960E058
What's new:
New attribute REGTYPE# introduced.
Macro WinABI in macrolibrary winabi.htm was enhanced with passing values in XMM.
Alphabetic Index was completed with automatic %variables and macrolibrary names.
Bugs fixed:
- Pseudoinstructions ENDPROC and ENDPROC1 now may have a label.
- VMX instructions INVVPID and INVEPT now require PRIV=ENABLED.
- Some misspelling and typos in Manual.
- Version 20180804
-
Download: euroasm.20180804.zip
Release date: 2018 Aug 4
TimeStamp: 1533340800
File size: 3824335
File hash MD5: 11F8DE79D40A997E8131B2B64BB562A9
What's new:
Macrolibraries were restructured to smaller files. A few new tests and sample projects were added. Manual was completed with more examples.
Bugs fixed:
- Factory-default configuration
euroasm.ini
was incorrectly included from \maclib\ instead of \objlib\ in ea.htm
.
- EaoptAssemble.TIMESTAMP incorrectly modified Ea.TimeStart.
- Referring structured variable member didn't mark the structured variable itself as dirty,too. False W2101 was issued.
- Addressing data from a different segment in 64bit mode incorrectly used RIP-relative addressing frame instead of relocatable offset.
- Incorrect relocation of object linked from resource file.
- Illegal chain of attribute operators is now detected and treated.
- Message size overflowed when macro recursively expanded itself.
- The expanded copy of statement containing %variables in listing had swapped LF+CR instead od CR+LF.
- Version 20180508
-
Download: euroasm.20180508.zip
Release date: 2018 May 8
TimeStamp: 1525737600
File size: 3623738
File hash MD5: 1B696827FEF065E363DB34ACA87B0FBA
What's new:
The first public release.
▲Back to the top▲