...
 
Commits (3)
fasm (1.73.11-1) experimental; urgency=medium
* New upstream version 1.73.11
-- Tomasz Buchert <tomasz@debian.org> Sun, 05 May 2019 17:03:49 +0200
fasm (1.73.10-1) experimental; urgency=medium
* New upstream version 1.73.10
......
No preview for this file type
......@@ -3459,7 +3459,9 @@ checks whether the given symbol is used somewhere (it returns correct result
even if symbol is used only after this check). The "defined" operator can be
followed by any expression, usually just by a single symbol name; it checks
whether the given expression contains only symbols that are defined in the
source and accessible from the current position.
source and accessible from the current position. The "definite" operator
does a similar check with restriction to symbols defined before current
position in source.
With "relativeto" operator it is possible to check whether values of two
expressions differ only by constant amount. The valid syntax is a numerical
expression followed by "relativeto" and then another expression (possibly
......@@ -3825,8 +3827,9 @@ get skipped.
The above sample might have been written as a try to define the label only
when it was not yet defined. It fails, because the "defined" operator does
check whether the label is defined anywhere, and this includes the definition
inside this conditionally processed block. However adding some additional
condition may make it possible to get it resolved:
inside this conditionally processed block. It could be easily corrected by
using "definite" operator instead of "defined". But there is also another
modification that could get it resolved:
if ~ defined alpha | defined @f
alpha:
......
No preview for this file type
......@@ -1836,6 +1836,8 @@ calculate_logical_expression:
je invalid_expression
cmp al,88h
je check_for_defined
cmp al,8Ah
je check_for_earlier_defined
cmp al,89h
je check_for_used
cmp al,'0'
......@@ -1981,7 +1983,12 @@ calculate_logical_expression:
or eax,edx
jnz return_true
jmp return_false
check_for_earlier_defined:
or bh,-1
jmp check_if_expression_defined
check_for_defined:
xor bh,bh
check_if_expression_defined:
or bl,-1
lods word [esi]
cmp ah,'('
......@@ -2025,6 +2032,8 @@ calculate_logical_expression:
cmp eax,0Fh
jb check_expression
je reserved_word_used_as_symbol
test bh,bh
jnz no_prediction
test byte [eax+8],4
jnz no_prediction
test byte [eax+8],1
......
......@@ -76,6 +76,7 @@ directive_operators:
db 2,'as',86h
db 2,'at',80h
db 7,'defined',88h
db 8,'definite',8Ah
db 3,'dup',81h
db 2,'eq',0F0h
db 6,'eqtype',0F7h
......
......@@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
VERSION_STRING equ "1.73.10"
VERSION_STRING equ "1.73.11"
VERSION_MAJOR = 1
VERSION_MINOR = 73
......@@ -2,6 +2,11 @@
Visit http://flatassembler.net/ for more information.
version 1.73.11 (Apr 19, 2019)
[+] Added "definite" operator.
version 1.73.10 (Apr 05, 2019)
[+] Added "cldemote", "tpause", "umonitor" and "umwait" instructions.
......