1,6 → 1,6 |
|
; flat assembler core |
; Copyright (c) 1999-2013, Tomasz Grysztar. |
; Copyright (c) 1999-2016, Tomasz Grysztar. |
; All rights reserved. |
|
convert_expression: |
77,7 → 77,7 |
ret |
|
convert_number: |
lea eax,[edi-10h] |
lea eax,[edi+20h] |
mov edx,[memory_end] |
cmp [source_start],0 |
je check_memory_for_number |
129,7 → 129,11 |
pop [current_offset] |
lods byte [esi] |
cmp al,')' |
jne invalid_expression |
je subexpression_closed |
dec esi |
mov al,'!' |
stosb |
subexpression_closed: |
ret |
symbol_value: |
cmp [source_start],0 |
147,16 → 151,13 |
shr ah,4 |
cmp ah,4 |
je register_value |
and ah,not 1 |
cmp ah,8 |
je register_value |
cmp ah,0Ch |
jae register_value |
cmp ah,6 |
je register_value |
cmp ah,0Dh |
je register_value |
cmp ah,0Fh |
je register_value |
cmp ah,2 |
jne no_address_register |
cmp al,23h |
je register_value |
cmp al,25h |
912,7 → 913,7 |
je preevaluate_or |
cmp dl,'&' |
je preevaluate_and |
cmp dl,'}' |
cmp dl,92h |
je preevaluation_done |
or dl,dl |
jnz invalid_logical_expression |
987,7 → 988,7 |
jmp skip_logical_value |
negation_skipped: |
mov al,[esi] |
cmp al,'{' |
cmp al,91h |
jne skip_simple_logical_value |
inc esi |
xchg al,[logical_value_wrapping] |
1003,7 → 1004,7 |
je skip_logical_expression |
cmp al,'&' |
je skip_logical_expression |
cmp al,'}' |
cmp al,92h |
jne wrongly_structured_logical_expression |
pop eax |
mov [logical_value_wrapping],al |
1026,13 → 1027,13 |
je logical_value_skipped |
cmp al,'&' |
je logical_value_skipped |
cmp al,'{' |
cmp al,91h |
je skip_logical_value_internal_parenthesis |
cmp al,'}' |
cmp al,92h |
jne skip_logical_value_symbol |
sub [logical_value_parentheses],1 |
jnc skip_logical_value_symbol |
cmp [logical_value_wrapping],'{' |
cmp [logical_value_wrapping],91h |
jne skip_logical_value_symbol |
jmp logical_value_skipped |
skip_logical_value_internal_parenthesis: |
1049,7 → 1050,7 |
jmp preevaluate_negation |
preevaluate_negation_ok: |
mov ebx,esi |
cmp byte [esi],'{' |
cmp byte [esi],91h |
jne preevaluate_simple_logical_value |
lods byte [esi] |
stos byte [edi] |
1062,7 → 1063,7 |
pop ebp |
cmp al,0FFh |
je invalid_logical_value |
cmp byte [esi],'}' |
cmp byte [esi],92h |
jne invalid_logical_value |
or al,al |
jnz preevaluated_expression_value |
1089,9 → 1090,9 |
mov al,[esi] |
or al,al |
jz logical_value_boundaries_found |
cmp al,'{' |
cmp al,91h |
je logical_value_internal_parentheses |
cmp al,'}' |
cmp al,92h |
je logical_value_boundaries_parenthesis_close |
cmp al,'|' |
je logical_value_boundaries_found |
1116,7 → 1117,7 |
logical_value_boundaries_parenthesis_close: |
sub [logical_value_parentheses],1 |
jnc next_symbol_in_logical_value |
cmp [logical_value_wrapping],'{' |
cmp [logical_value_wrapping],91h |
jne next_symbol_in_logical_value |
logical_value_boundaries_found: |
or edx,edx |