/programs/develop/fasm/trunk/assemble.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
assembler: |
1914,3 → 1914,13 |
or al,al |
jz invoked_error |
jmp extra_characters_on_line |
assert_directive: |
call calculate_logical_expression |
or al,al |
jnz instruction_assembled |
cmp [error_line],0 |
jne instruction_assembled |
mov eax,[current_line] |
mov [error_line],eax |
mov [error],assertion_failed |
jmp instruction_assembled |
/programs/develop/fasm/trunk/avx.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
avx_single_source_pd_instruction: |
/programs/develop/fasm/trunk/errors.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
out_of_memory: |
178,6 → 178,9 |
too_many_repeats: |
push _too_many_repeats |
jmp error_with_source |
assertion_failed: |
push _assertion_failed |
jmp error_with_source |
invoked_error: |
push _invoked_error |
error_with_source: |
/programs/develop/fasm/trunk/exprcalc.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
calculate_expression: |
/programs/develop/fasm/trunk/exprpars.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
convert_expression: |
15,6 → 15,8 |
pop edi |
or al,al |
jz expression_element |
cmp al,82h |
je expression_loop |
push eax |
jmp expression_loop |
expression_element: |
391,8 → 393,12 |
xor edx,edx |
mov cl,bl |
dec esi |
cmp bl,64 |
jae oct_out_of_range |
cmp bl,63 |
ja oct_out_of_range |
jne oct_range_ok |
cmp al,1 |
ja oct_out_of_range |
oct_range_ok: |
add bl,3 |
cmp cl,30 |
je oct_digit_wrap |
/programs/develop/fasm/trunk/fasm.asm |
---|
1,7 → 1,7 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; flat assembler source ;; |
;; Copyright (c) 1999-2006, Tomasz Grysztar ;; |
;; Copyright (c) 1999-2012, Tomasz Grysztar ;; |
;; All rights reserved. ;; |
;; ;; |
;; KolibriOS port by KolibriOS Team ;; |
/programs/develop/fasm/trunk/formats.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
formatter: |
/programs/develop/fasm/trunk/messages.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
_out_of_memory db 'out of memory',0 |
48,4 → 48,5 |
_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 invoked in source file',0 |
_invoked_error db 'error directive invoked in source file',0 |
_assertion_failed db 'assertion failed',0 |
/programs/develop/fasm/trunk/parser.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
parser: |
115,6 → 115,8 |
je parse_end_directive |
cmp bx,else_directive-instruction_handler |
je parse_else |
cmp bx,assert_directive-instruction_handler |
je parse_assert |
common_parse: |
call parse_line_contents |
jmp parse_next_line |
278,6 → 280,19 |
mov al,dl |
stos byte [edi] |
jmp parse_if |
parse_assert: |
push edi |
call parse_line_contents |
xor al,al |
stos byte [edi] |
xchg esi,[esp] |
mov edi,esi |
call preevaluate_logical_expression |
pop esi |
or al,al |
jz parse_next_line |
stos byte [edi] |
jmp parse_next_line |
skip_true_condition_else: |
sub edi,4 |
or byte [esp],1 |
/programs/develop/fasm/trunk/preproce.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
preprocessor: |
826,7 → 826,7 |
mov [macro_status],al |
mov eax,[current_line] |
mov [error_line],eax |
xor bl,bl |
xor ebp,ebp |
lods byte [esi] |
or al,al |
jz line_preprocessed |
839,7 → 839,7 |
je skip_macro_argument |
cmp al,'[' |
jne invalid_macro_arguments |
xor bl,-1 |
or ebp,-1 |
jz invalid_macro_arguments |
lods byte [esi] |
cmp al,1Ah |
849,6 → 849,8 |
inc esi |
add esi,eax |
lods byte [esi] |
cmp al,'=' |
je macro_argument_with_default_value |
cmp al,'*' |
jne macro_argument_end |
lods byte [esi] |
858,9 → 860,9 |
cmp al,']' |
jne end_macro_arguments |
lods byte [esi] |
not bl |
not ebp |
end_macro_arguments: |
or bl,bl |
or ebp,ebp |
jnz invalid_macro_arguments |
or al,al |
jz line_preprocessed |
867,6 → 869,76 |
cmp al,'{' |
je found_macro_block |
jmp invalid_macro_arguments |
macro_argument_with_default_value: |
call skip_macro_argument_value |
inc esi |
jmp macro_argument_end |
skip_macro_argument_value: |
cmp byte [esi],'<' |
jne simple_argument |
mov ecx,1 |
inc esi |
enclosed_argument: |
lods byte [esi] |
or al,al |
jz invalid_macro_arguments |
cmp al,1Ah |
je enclosed_symbol |
cmp al,22h |
je enclosed_string |
cmp al,'>' |
je enclosed_argument_end |
cmp al,'<' |
jne enclosed_argument |
inc ecx |
jmp enclosed_argument |
enclosed_symbol: |
movzx eax,byte [esi] |
inc esi |
add esi,eax |
jmp enclosed_argument |
enclosed_string: |
lods dword [esi] |
add esi,eax |
jmp enclosed_argument |
enclosed_argument_end: |
loop enclosed_argument |
lods byte [esi] |
or al,al |
jz argument_value_end |
cmp al,',' |
je argument_value_end |
or ebp,ebp |
jz invalid_macro_arguments |
cmp al,']' |
je argument_value_end |
jmp invalid_macro_arguments |
simple_argument: |
lods byte [esi] |
or al,al |
jz argument_value_end |
cmp al,',' |
je argument_value_end |
cmp al,22h |
je argument_string |
cmp al,1Ah |
je argument_symbol |
or ebp,ebp |
jz simple_argument |
cmp al,']' |
je argument_value_end |
argument_symbol: |
movzx eax,byte [esi] |
inc esi |
add esi,eax |
jmp simple_argument |
argument_string: |
lods dword [esi] |
add esi,eax |
jmp simple_argument |
argument_value_end: |
dec esi |
ret |
find_macro_block: |
add esi,2 |
lods byte [esi] |
1386,6 → 1458,7 |
mov eax,[edx+12] |
mov [macro_line],eax |
mov [counter_limit],0 |
xor ebp,ebp |
process_macro_arguments: |
mov al,[esi] |
or al,al |
1427,73 → 1500,14 |
add esi,ecx |
xchg esi,ebx |
mov [edx+12],esi |
cmp byte [esi],'<' |
jne simple_argument |
inc esi |
mov [edx+12],esi |
mov ecx,1 |
enclosed_argument: |
lods byte [esi] |
or al,al |
jz invalid_macro_arguments |
cmp al,1Ah |
je enclosed_symbol |
cmp al,22h |
je enclosed_string |
cmp al,'>' |
je enclosed_argument_end |
cmp al,'<' |
jne enclosed_argument |
inc ecx |
jmp enclosed_argument |
enclosed_symbol: |
movzx eax,byte [esi] |
inc esi |
add esi,eax |
jmp enclosed_argument |
enclosed_string: |
lods dword [esi] |
add esi,eax |
jmp enclosed_argument |
enclosed_argument_end: |
loop enclosed_argument |
mov al,[esi] |
or al,al |
jz enclosed_argument_ok |
cmp al,',' |
jne invalid_macro_arguments |
enclosed_argument_ok: |
mov eax,esi |
sub eax,[edx+12] |
dec eax |
or eax,80000000h |
mov [edx+8],eax |
jmp argument_value_ok |
simple_argument: |
lods byte [esi] |
or al,al |
jz argument_value_end |
cmp al,',' |
je argument_value_end |
cmp al,22h |
je argument_string |
cmp al,1Ah |
jne simple_argument |
movzx eax,byte [esi] |
inc esi |
add esi,eax |
jmp simple_argument |
argument_string: |
lods dword [esi] |
add esi,eax |
jmp simple_argument |
argument_value_end: |
dec esi |
mov eax,esi |
sub eax,[edx+12] |
mov [edx+8],eax |
argument_value_ok: |
push ebp |
xor ebp,ebp |
call skip_macro_argument_value |
pop ebp |
call finish_macro_argument |
xchg esi,ebx |
cmp byte [esi],'=' |
je argument_with_default_value |
cmp byte [esi],'*' |
jne macro_argument_ok |
cmp dword [edx+8],0 |
1501,6 → 1515,27 |
inc esi |
macro_argument_ok: |
ret |
finish_macro_argument: |
mov eax,[edx+12] |
mov ecx,esi |
sub ecx,eax |
cmp byte [eax],'<' |
jne argument_value_length_ok |
inc dword [edx+12] |
sub ecx,2 |
argument_value_length_ok: |
mov [edx+8],ecx |
ret |
argument_with_default_value: |
inc esi |
push esi |
call skip_macro_argument_value |
pop eax |
cmp dword [edx+8],0 |
jne macro_argument_ok |
mov [edx+12],eax |
call finish_macro_argument |
jmp macro_argument_ok |
arguments_end: |
cmp byte [ebx],0 |
jne invalid_macro_arguments |
1619,6 → 1654,8 |
lods byte [esi] |
cmp [base_code],1 |
ja irps_name_ok |
cmp al,'=' |
je irp_with_default_value |
cmp al,'*' |
jne irp_name_ok |
lods byte [esi] |
1626,6 → 1663,10 |
cmp al,',' |
jne invalid_macro_arguments |
jmp irp_parameters_start |
irp_with_default_value: |
xor ebp,ebp |
call skip_macro_argument_value |
inc esi |
irps_name_ok: |
cmp al,',' |
jne invalid_macro_arguments |
/programs/develop/fasm/trunk/symbdump.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
dump_symbols: |
/programs/develop/fasm/trunk/system.inc |
---|
1,5 → 1,5 |
; flat assembler |
; Copyright (c) 1999-2007, Tomasz Grysztar |
; Copyright (c) 1999-2012, Tomasz Grysztar |
; All rights reserved. |
struc FILEIO |
/programs/develop/fasm/trunk/tables.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
include_variable db 'INCLUDE',0 |
58,8 → 58,8 |
db 0 |
single_operand_operators: |
db 1,'+',0 |
db 1,'-',083h |
db 1,'+',82h |
db 1,'-',83h |
db 3,'not',0D0h |
db 3,'plt',0E1h |
db 3,'rva',0E0h |
1265,6 → 1265,8 |
dw sse_pd_instruction-instruction_handler |
db 'andnps',55h |
dw sse_ps_instruction-instruction_handler |
db 'assert',0 |
dw assert_directive-instruction_handler |
db 'cmovae',43h |
dw cmov_instruction-instruction_handler |
db 'cmovbe',46h |
/programs/develop/fasm/trunk/variable.inc |
---|
1,6 → 1,6 |
; flat assembler core variables |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
; Variables which have to be set up by interface: |
/programs/develop/fasm/trunk/version.inc |
---|
1,6 → 1,6 |
; flat assembler version 1.69 |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
; |
; This programs is free for commercial and non-commercial use as long as |
33,7 → 33,7 |
; cannot simply be copied and put under another distribution licence |
; (including the GNU Public Licence). |
VERSION_STRING equ "1.69.34" |
VERSION_STRING equ "1.69.36" |
VERSION_MAJOR = 1 |
VERSION_MINOR = 69 |
/programs/develop/fasm/trunk/x86_64.inc |
---|
1,6 → 1,6 |
; flat assembler core |
; Copyright (c) 1999-2011, Tomasz Grysztar. |
; Copyright (c) 1999-2012, Tomasz Grysztar. |
; All rights reserved. |
simple_instruction_except64: |