release 1.71.03

This commit is contained in:
Tomasz Grysztar 2012-09-27 12:00:00 +00:00
parent 90c5a8c5ad
commit 55d78c88a6
5 changed files with 15 additions and 6 deletions

View file

@ -438,12 +438,15 @@ the least significant byte of number.
The numerical expression used as an address value can also contain any of
general registers used for addressing, they can be added and multiplied by
appropriate values, as it is allowed for the x86 architecture instructions.
The numerical calculations inside address definition by default operate with
target size assumed to be the same as the current bitness of code, even if
generated instruction encoding will use a different address size.
There are also some special symbols that can be used inside the numerical
expression. First is "$", which is always equal to the value of current
offset, while "$$" is equal to base address of current addressing space. The
other one is "%", which is the number of current repeat in parts of code that
are repeated using some special directives (see 2.2). There's also "%t"
symbol, which is always equal to the current time stamp.
are repeated using some special directives (see 2.2) and zero anywhere else.
There's also "%t" symbol, which is always equal to the current time stamp.
Any numerical expression can also consist of single floating point value
(flat assembler does not allow any floating point operations at compilation
time) in the scientific notation, they can end with the "f" letter to be
@ -475,7 +478,7 @@ while simple "1" defines an integer value.
The operand of any jump or call instruction can be preceded not only by the
size operator, but also by one of the operators specifying type of the jump:
"short", "near" of "far". For example, when assembler is in 16-bit mode,
"short", "near" or "far". For example, when assembler is in 16-bit mode,
instruction "jmp dword [0]" will become the far jump and when assembler is
in 32-bit mode, it will become the near jump. To force this instruction to be
treated differently, use the "jmp near dword [0]" or "jmp far dword [0]" form.

View file

@ -511,7 +511,7 @@ org_directive:
mov [ebx+9],cl
mov cl,[value_sign]
sub [ebx],eax
sbb [ebx],edx
sbb [ebx+4],edx
sbb byte [ebx+8],0
jp org_value_ok
call recoverable_overflow

View file

@ -49,4 +49,4 @@ _setting_already_specified db 'setting already specified',0
_data_already_defined db 'data already defined',0
_too_many_repeats db 'too many repeats',0
_invoked_error db 'error directive encountered in source file',0
_assertion_failed db 'assertion failed',0
_assertion_failed db 'assertion failed',0

View file

@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
VERSION_STRING equ "1.71.02"
VERSION_STRING equ "1.71.03"
VERSION_MAJOR = 1
VERSION_MINOR = 71

View file

@ -2,6 +2,12 @@
Visit http://flatassembler.net/ for more information.
version 1.71.03 (Sep 27, 2012)
[-] Fixed a bug in "org" directive introduced by recent changes, which
was manifesting with bases larger than 31-bit.
version 1.71.02 (Sep 26, 2012)
[-] Expression calculator now allows to calculate the difference of