forked from KolibriOS/kolibrios
36
git-svn-id: svn://kolibrios.org@2664 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
90139378de
commit
96a29bfdda
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
assembler:
|
assembler:
|
||||||
@ -1914,3 +1914,13 @@ err_directive:
|
|||||||
or al,al
|
or al,al
|
||||||
jz invoked_error
|
jz invoked_error
|
||||||
jmp extra_characters_on_line
|
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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
avx_single_source_pd_instruction:
|
avx_single_source_pd_instruction:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
out_of_memory:
|
out_of_memory:
|
||||||
@ -178,6 +178,9 @@ data_already_defined:
|
|||||||
too_many_repeats:
|
too_many_repeats:
|
||||||
push _too_many_repeats
|
push _too_many_repeats
|
||||||
jmp error_with_source
|
jmp error_with_source
|
||||||
|
assertion_failed:
|
||||||
|
push _assertion_failed
|
||||||
|
jmp error_with_source
|
||||||
invoked_error:
|
invoked_error:
|
||||||
push _invoked_error
|
push _invoked_error
|
||||||
error_with_source:
|
error_with_source:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
calculate_expression:
|
calculate_expression:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
convert_expression:
|
convert_expression:
|
||||||
@ -15,6 +15,8 @@ convert_expression:
|
|||||||
pop edi
|
pop edi
|
||||||
or al,al
|
or al,al
|
||||||
jz expression_element
|
jz expression_element
|
||||||
|
cmp al,82h
|
||||||
|
je expression_loop
|
||||||
push eax
|
push eax
|
||||||
jmp expression_loop
|
jmp expression_loop
|
||||||
expression_element:
|
expression_element:
|
||||||
@ -391,8 +393,12 @@ get_number:
|
|||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov cl,bl
|
mov cl,bl
|
||||||
dec esi
|
dec esi
|
||||||
cmp bl,64
|
cmp bl,63
|
||||||
jae oct_out_of_range
|
ja oct_out_of_range
|
||||||
|
jne oct_range_ok
|
||||||
|
cmp al,1
|
||||||
|
ja oct_out_of_range
|
||||||
|
oct_range_ok:
|
||||||
add bl,3
|
add bl,3
|
||||||
cmp cl,30
|
cmp cl,30
|
||||||
je oct_digit_wrap
|
je oct_digit_wrap
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; ;;
|
;; ;;
|
||||||
;; flat assembler source ;;
|
;; flat assembler source ;;
|
||||||
;; Copyright (c) 1999-2006, Tomasz Grysztar ;;
|
;; Copyright (c) 1999-2012, Tomasz Grysztar ;;
|
||||||
;; All rights reserved. ;;
|
;; All rights reserved. ;;
|
||||||
;; ;;
|
;; ;;
|
||||||
;; KolibriOS port by KolibriOS Team ;;
|
;; KolibriOS port by KolibriOS Team ;;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
formatter:
|
formatter:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
_out_of_memory db 'out of memory',0
|
_out_of_memory db 'out of memory',0
|
||||||
@ -48,4 +48,5 @@ _section_not_aligned_enough db 'section is not aligned enough',0
|
|||||||
_setting_already_specified db 'setting already specified',0
|
_setting_already_specified db 'setting already specified',0
|
||||||
_data_already_defined db 'data already defined',0
|
_data_already_defined db 'data already defined',0
|
||||||
_too_many_repeats db 'too many repeats',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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
parser:
|
parser:
|
||||||
@ -115,6 +115,8 @@ parser:
|
|||||||
je parse_end_directive
|
je parse_end_directive
|
||||||
cmp bx,else_directive-instruction_handler
|
cmp bx,else_directive-instruction_handler
|
||||||
je parse_else
|
je parse_else
|
||||||
|
cmp bx,assert_directive-instruction_handler
|
||||||
|
je parse_assert
|
||||||
common_parse:
|
common_parse:
|
||||||
call parse_line_contents
|
call parse_line_contents
|
||||||
jmp parse_next_line
|
jmp parse_next_line
|
||||||
@ -278,6 +280,19 @@ parser:
|
|||||||
mov al,dl
|
mov al,dl
|
||||||
stos byte [edi]
|
stos byte [edi]
|
||||||
jmp parse_if
|
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:
|
skip_true_condition_else:
|
||||||
sub edi,4
|
sub edi,4
|
||||||
or byte [esp],1
|
or byte [esp],1
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
dump_symbols:
|
dump_symbols:
|
||||||
@ -387,4 +387,4 @@ dump_preprocessed_source:
|
|||||||
call write
|
call write
|
||||||
jc write_failed
|
jc write_failed
|
||||||
call close
|
call close
|
||||||
ret
|
ret
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; flat assembler
|
; flat assembler
|
||||||
; Copyright (c) 1999-2007, Tomasz Grysztar
|
; Copyright (c) 1999-2012, Tomasz Grysztar
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
struc FILEIO
|
struc FILEIO
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
include_variable db 'INCLUDE',0
|
include_variable db 'INCLUDE',0
|
||||||
@ -58,8 +58,8 @@ operators:
|
|||||||
db 0
|
db 0
|
||||||
|
|
||||||
single_operand_operators:
|
single_operand_operators:
|
||||||
db 1,'+',0
|
db 1,'+',82h
|
||||||
db 1,'-',083h
|
db 1,'-',83h
|
||||||
db 3,'not',0D0h
|
db 3,'not',0D0h
|
||||||
db 3,'plt',0E1h
|
db 3,'plt',0E1h
|
||||||
db 3,'rva',0E0h
|
db 3,'rva',0E0h
|
||||||
@ -1265,6 +1265,8 @@ instructions_6:
|
|||||||
dw sse_pd_instruction-instruction_handler
|
dw sse_pd_instruction-instruction_handler
|
||||||
db 'andnps',55h
|
db 'andnps',55h
|
||||||
dw sse_ps_instruction-instruction_handler
|
dw sse_ps_instruction-instruction_handler
|
||||||
|
db 'assert',0
|
||||||
|
dw assert_directive-instruction_handler
|
||||||
db 'cmovae',43h
|
db 'cmovae',43h
|
||||||
dw cmov_instruction-instruction_handler
|
dw cmov_instruction-instruction_handler
|
||||||
db 'cmovbe',46h
|
db 'cmovbe',46h
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core variables
|
; flat assembler core variables
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
; Variables which have to be set up by interface:
|
; Variables which have to be set up by interface:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler version 1.69
|
; flat assembler version 1.69
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
;
|
;
|
||||||
; This programs is free for commercial and non-commercial use as long as
|
; 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
|
; cannot simply be copied and put under another distribution licence
|
||||||
; (including the GNU Public Licence).
|
; (including the GNU Public Licence).
|
||||||
|
|
||||||
VERSION_STRING equ "1.69.34"
|
VERSION_STRING equ "1.69.36"
|
||||||
|
|
||||||
VERSION_MAJOR = 1
|
VERSION_MAJOR = 1
|
||||||
VERSION_MINOR = 69
|
VERSION_MINOR = 69
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
; flat assembler core
|
; flat assembler core
|
||||||
; Copyright (c) 1999-2011, Tomasz Grysztar.
|
; Copyright (c) 1999-2012, Tomasz Grysztar.
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
|
|
||||||
simple_instruction_except64:
|
simple_instruction_except64:
|
||||||
|
Loading…
Reference in New Issue
Block a user