git-svn-id: svn://kolibrios.org@2664 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Ivan Baravy 2012-05-20 11:47:06 +00:00
parent 90139378de
commit 96a29bfdda
16 changed files with 2350 additions and 2272 deletions

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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 ;;

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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: