Subversion Repositories Kolibri OS

Rev

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