Lazy Assembler (freeware) Version 0.56 (6 AUG 2007) by Stepan Polovnikov
LZASM is an x86 assembler for DOS and Windows that handles the TASM (Turbo Assembler) IDEAL mode and produces OMF OBJ files.
Support MMX, SSE, SSE2, SSE3 (PNI), SSE4 (MNI), 3DNow!Pro instructions.
New features:
- support rdtscp instructions [0.54]
- support SSE4 instructions [0.53]
- output compile time [0.47]
- procmyprocusesallflags[0.45]
Bugs fixed:
- fixed 3DNow! instructions [0.56]
- fixed clts,lldt,lgdt,lidt instructions [0.55]
- error outsb opcode [0.54]
- fixed cmpccps,cmpccpd,cmpccsd,cmpccss instructions of SSE2 [0.52]
- define public variable (crash) [0.51]
- LZASMX date format for DOS extender [0.50]
- segment attribute keywords is no case sensitive [0.49]
- LZASMX opened file limit [0.49]
- command line key /p [0.48]
- listing of global/public (crush) [0.48]
- macro req, rest, vararg keywords is no case sensitive [0.48]
- compatibility pass bug [0.47]
- typedef error output bug [0.47]
- X-bug ;) [0.44,0.46]
- alphabetic segment ordering (/a) [0.45]
- macro/local bug [0.43]
- text macro bug [0.42]
Features:
- TASM IDEAL mode compatible
- support SSE, SSE2, SSE3 (PNI), SSE4 (MNI), 3DNow!Pro instructions
- support Borland debug info
- all symbols case sensitive
- auto alignment of procedures (option procalign:value)
- stack frame options (option stackframe:[fast|small])
- definitions of hexadecimal constants 0xC0DE
- definitions of binary constants 10101y
- floating point constant as 32-bits immediate (mov eax,2.3)
- support unicode strings (change mode: option unicode, option ansi, type: tchar, definition: dc "string",0)
- support oword (octaword) type, do for definition
- support comment directive
- support includebin "filename" directive
- support .break,
.continue,
.elseif,
.if,
.else,
.endif,
.repeat,
.until,
.untilcxz,
.while,
.endw directives
- support echo directive
- floating point register reference st0,..,st7 or st(0),..,st(7)
- MMX register reference mm0,..,mm7 or mm(0),..,mm(7)
- SSE/SSE2/SSE3/SSE4 register reference xmm0,..,xmm7 or xmm(0),..,xmm(7)
- support predefined symbols @unicode, @line
- support labels @@,@f,@b
- support 2^32 labels for conditional directives
- .if, .repeat, .while, ... directives generate @@xxxx labels instead @Cxxxx
- lea optimization
- reductive record syntax (setting 1 bit width field is optinal)
- end directive is optional
- support @lzasm predefined symbol, define version of LZASM
- control of stack alignment with stackalign, stackunalign directives