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 | convert_expression: |
5 | convert_expression: |
6 | push ebp |
6 | push ebp |
Line 13... | Line 13... | ||
13 | call get_operator |
13 | call get_operator |
14 | pop edi |
14 | pop edi |
15 | or al,al |
15 | or al,al |
16 | jz expression_element |
16 | jz expression_element |
17 | push eax |
17 | cmp al,82h |
- | 18 | je expression_loop |
|
- | 19 | push eax |
|
18 | jmp expression_loop |
20 | jmp expression_loop |
19 | expression_element: |
21 | expression_element: |
20 | mov al,[esi] |
22 | mov al,[esi] |
21 | cmp al,1Ah |
23 | cmp al,1Ah |
22 | je expression_number |
24 | je expression_number |
Line 389... | Line 391... | ||
389 | oct_digit_ok: |
391 | oct_digit_ok: |
390 | xor edx,edx |
392 | xor edx,edx |
391 | mov cl,bl |
393 | mov cl,bl |
392 | dec esi |
394 | dec esi |
393 | cmp bl,64 |
395 | cmp bl,63 |
394 | jae oct_out_of_range |
396 | ja oct_out_of_range |
- | 397 | jne oct_range_ok |
|
- | 398 | cmp al,1 |
|
- | 399 | ja oct_out_of_range |
|
395 | add bl,3 |
400 | oct_range_ok: |
- | 401 | add bl,3 |
|
396 | cmp cl,30 |
402 | cmp cl,30 |
397 | je oct_digit_wrap |
403 | je oct_digit_wrap |
398 | ja oct_digit_high |
404 | ja oct_digit_high |
399 | shl eax,cl |
405 | shl eax,cl |
400 | or dword [edi],eax |
406 | or dword [edi],eax |