Rev 2664 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2664 | Rev 2665 | ||
---|---|---|---|
Line 501... | Line 501... | ||
501 | je instruction_separator |
501 | je instruction_separator |
502 | cmp al,',' |
502 | cmp al,',' |
503 | je separator |
503 | je separator |
504 | cmp al,'=' |
504 | cmp al,'=' |
505 | je separator |
505 | je expression_comparator |
506 | cmp al,'|' |
506 | cmp al,'|' |
507 | je separator |
507 | je separator |
508 | cmp al,'&' |
508 | cmp al,'&' |
509 | je separator |
509 | je separator |
510 | cmp al,'~' |
510 | cmp al,'~' |
511 | je separator |
511 | je separator |
Line 567... | Line 567... | ||
567 | cmp al,82h |
567 | cmp al,82h |
568 | je parse_from_operator |
568 | je parse_from_operator |
569 | cmp al,89h |
569 | cmp al,89h |
570 | je parse_label_operator |
570 | je parse_label_operator |
571 | jmp argument_parsed |
571 | cmp al,0F8h |
- | 572 | je forced_expression |
|
- | 573 | jmp argument_parsed |
|
572 | allow_embedded_instruction: |
574 | instruction_separator: |
- | 575 | stos byte [edi] |
|
- | 576 | allow_embedded_instruction: |
|
573 | cmp byte [esi],1Ah |
577 | cmp byte [esi],1Ah |
574 | jne parse_argument |
578 | jne parse_argument |
575 | push edi |
579 | push edi |
576 | inc esi |
580 | inc esi |
577 | movzx ecx,byte [esi] |
581 | movzx ecx,byte [esi] |
Line 808... | Line 812... | ||
808 | mov al,'{' |
812 | mov al,'{' |
809 | stos byte [edi] |
813 | stos byte [edi] |
810 | inc [parenthesis_stack] |
814 | inc [parenthesis_stack] |
811 | jmp parse_argument |
815 | jmp parse_argument |
812 | expression: |
816 | expression_comparator: |
- | 817 | stos byte [edi] |
|
- | 818 | jmp forced_expression |
|
- | 819 | greater: |
|
- | 820 | cmp byte [esi],'=' |
|
- | 821 | jne separator |
|
- | 822 | inc esi |
|
- | 823 | mov al,0F2h |
|
- | 824 | jmp separator |
|
- | 825 | less: |
|
- | 826 | cmp byte [edi-1],0F6h |
|
- | 827 | je separator |
|
- | 828 | cmp byte [esi],'>' |
|
- | 829 | je not_equal |
|
- | 830 | cmp byte [esi],'=' |
|
- | 831 | jne separator |
|
- | 832 | inc esi |
|
- | 833 | mov al,0F3h |
|
- | 834 | jmp separator |
|
- | 835 | not_equal: |
|
- | 836 | inc esi |
|
- | 837 | mov al,0F1h |
|
- | 838 | jmp expression_comparator |
|
- | 839 | expression: |
|
813 | mov al,'(' |
840 | mov al,'(' |
814 | stos byte [edi] |
841 | stos byte [edi] |
815 | call convert_expression |
842 | call convert_expression |
816 | mov al,')' |
843 | mov al,')' |
817 | stos byte [edi] |
844 | stos byte [edi] |
Line 890... | Line 917... | ||
890 | close_parenthesis: |
917 | close_parenthesis: |
891 | mov al,'}' |
918 | mov al,'}' |
892 | separator: |
919 | separator: |
893 | stos byte [edi] |
920 | stos byte [edi] |
894 | jmp argument_parsed |
921 | argument_parsed: |
895 | instruction_separator: |
- | |
896 | stos byte [edi] |
- | |
897 | jmp allow_embedded_instruction |
- | |
898 | greater: |
- | |
899 | cmp byte [esi],'=' |
- | |
900 | jne separator |
- | |
901 | inc esi |
- | |
902 | mov al,0F2h |
- | |
903 | jmp separator |
- | |
904 | less: |
- | |
905 | cmp byte [edi-1],0F6h |
- | |
906 | je separator |
- | |
907 | cmp byte [esi],'>' |
- | |
908 | je not_equal |
- | |
909 | cmp byte [esi],'=' |
- | |
910 | jne separator |
- | |
911 | inc esi |
- | |
912 | mov al,0F3h |
- | |
913 | jmp separator |
- | |
914 | not_equal: |
- | |
915 | inc esi |
- | |
916 | mov al,0F1h |
- | |
917 | jmp separator |
- | |
918 | argument_parsed: |
- | |
919 | cmp [parenthesis_stack],0 |
922 | cmp [parenthesis_stack],0 |
920 | je parse_argument |
923 | je parse_argument |
921 | dec [parenthesis_stack] |
924 | dec [parenthesis_stack] |
922 | add esp,8 |
925 | add esp,8 |
923 | jmp argument_parsed |
926 | jmp argument_parsed |
Line 982... | Line 985... | ||
982 | cmp ecx,ebp |
985 | cmp ecx,ebp |
983 | jne next_operator |
986 | jne next_operator |
984 | repe cmps byte [esi],[edi] |
987 | repe cmps byte [esi],[edi] |
985 | je operator_found |
988 | je operator_found |
986 | next_operator: |
989 | jb no_operator |
- | 990 | next_operator: |
|
987 | mov edi,ebx |
991 | mov edi,ebx |
988 | inc edi |
992 | inc edi |
989 | jmp check_operator |
993 | jmp check_operator |
990 | no_operator: |
994 | no_operator: |
991 | mov esi,edx |
995 | mov esi,edx |
Line 1044... | Line 1048... | ||
1044 | repe cmps byte [esi],[edi] |
1048 | repe cmps byte [esi],[edi] |
1045 | ja symbols_up |
1049 | ja symbols_up |
1046 | jb symbols_down |
1050 | jb symbols_down |
1047 | mov ax,[edi] |
1051 | mov ax,[edi] |
1048 | 1052 | cmp al,18h |
|
1049 | cmp al,18h |
- | |
1050 | jb symbol_ok |
1053 | jb symbol_ok |
1051 | cmp [formatter_symbols_allowed],0 |
1054 | cmp [formatter_symbols_allowed],0 |
1052 | je no_symbol |
1055 | je no_symbol |
1053 | 1056 | symbol_ok: |
|
1054 | symbol_ok: |
- | |
1055 | pop esi |
1057 | pop esi |
1056 | add esi,ebp |
1058 | add esi,ebp |
1057 | clc |
1059 | clc |
1058 | ret |
1060 | ret |
1059 | no_symbol: |
1061 | no_symbol: |