Rev 2287 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2287 | Rev 2664 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; flat assembler core |
1 | ; flat assembler core |
2 | ; Copyright (c) 1999-2011, Tomasz Grysztar. |
2 | ; Copyright (c) 1999-2012, Tomasz Grysztar. |
3 | ; All rights reserved. |
3 | ; All rights reserved. |
Line 4... | Line 4... | ||
4 | 4 | ||
5 | parser: |
5 | parser: |
6 | mov eax,[memory_end] |
6 | mov eax,[memory_end] |
Line 113... | Line 113... | ||
113 | cmp bx,end_directive-instruction_handler |
113 | cmp bx,end_directive-instruction_handler |
114 | je parse_end_directive |
114 | je parse_end_directive |
115 | cmp bx,else_directive-instruction_handler |
115 | cmp bx,else_directive-instruction_handler |
116 | je parse_else |
116 | je parse_else |
117 | common_parse: |
117 | cmp bx,assert_directive-instruction_handler |
- | 118 | je parse_assert |
|
- | 119 | common_parse: |
|
118 | call parse_line_contents |
120 | call parse_line_contents |
119 | jmp parse_next_line |
121 | jmp parse_next_line |
120 | empty_instruction: |
122 | empty_instruction: |
121 | lods byte [esi] |
123 | lods byte [esi] |
122 | or al,al |
124 | or al,al |
Line 276... | Line 278... | ||
276 | stos word [edi] |
278 | stos word [edi] |
277 | mov al,dl |
279 | mov al,dl |
278 | stos byte [edi] |
280 | stos byte [edi] |
279 | jmp parse_if |
281 | jmp parse_if |
280 | skip_true_condition_else: |
282 | parse_assert: |
- | 283 | push edi |
|
- | 284 | call parse_line_contents |
|
- | 285 | xor al,al |
|
- | 286 | stos byte [edi] |
|
- | 287 | xchg esi,[esp] |
|
- | 288 | mov edi,esi |
|
- | 289 | call preevaluate_logical_expression |
|
- | 290 | pop esi |
|
- | 291 | or al,al |
|
- | 292 | jz parse_next_line |
|
- | 293 | stos byte [edi] |
|
- | 294 | jmp parse_next_line |
|
- | 295 | skip_true_condition_else: |
|
281 | sub edi,4 |
296 | sub edi,4 |
282 | or byte [esp],1 |
297 | or byte [esp],1 |
283 | jmp skip_parsing_contents |
298 | jmp skip_parsing_contents |
284 | parse_pure_else: |
299 | parse_pure_else: |
285 | bts dword [esp],1 |
300 | bts dword [esp],1 |