main.asm

来自「开放源码的编译器open watcom 1.6.0版的源代码」· 汇编 代码 · 共 1,574 行 · 第 1/5 页

ASM
1,574
字号
                mov     ebp,esp
                push    00000028H
                call    near ptr __CHK
                push    ebx
                push    ecx
                push    edx
                push    esi
                push    edi
                sub     esp,0000000cH
                call    near ptr PushLineQueue_
                cmp     byte ptr _ProcessorType,00H
                je      short L61
                call    near ptr set_processor_type_
L61:            cmp     byte ptr _MemType,00H
                je      short L62
                call    near ptr set_mem_type_
L62:            mov     eax,dword ptr _CmdlineConstList
                mov     dword ptr [ebp]-18H,eax
L63:            cmp     dword ptr [ebp]-18H,00000000H
                jne     short L65
                jmp     short L66
L64:            mov     eax,dword ptr [ebp]-1cH
                mov     dword ptr [ebp]-18H,eax
                jmp     short L63
L65:            mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     dword ptr [ebp]-1cH,eax
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]+4H
                call    near ptr AddConstant_
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]+4H
                call    near ptr AsmFree_
                mov     eax,dword ptr [ebp]-18H
                call    near ptr AsmFree_
                jmp     short L64
L66:            mov     eax,offset DGROUP:L164
                call    near ptr getenv_
                mov     dword ptr [ebp]-20H,eax
                cmp     dword ptr [ebp]-20H,00000000H
                je      short L67
                mov     eax,dword ptr [ebp]-20H
                call    near ptr AddStringToIncludePath_
L67:            lea     esp,[ebp]-14H
                pop     edi
                pop     esi
                pop     edx
                pop     ecx
                pop     ebx
                pop     ebp
                ret
put_cmdline_const_in_list_:
                push    ebp
                mov     ebp,esp
                push    00000038H
                call    near ptr __CHK
                push    ebx
                push    ecx
                push    edx
                push    esi
                push    edi
                sub     esp,0000001cH
                mov     dword ptr [ebp]-28H,eax
                mov     edx,offset DGROUP:L165
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strcspn_
                mov     ebx,eax
                mov     edx,offset DGROUP:L166
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strcspn_
                cmp     ebx,eax
                jae     short L68
                mov     edx,offset DGROUP:L165
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strcspn_
                mov     dword ptr [ebp]-30H,eax
                jmp     short L69
L68:            mov     edx,offset DGROUP:L166
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strcspn_
                mov     dword ptr [ebp]-30H,eax
L69:            mov     eax,dword ptr [ebp]-30H
                mov     dword ptr [ebp]-1cH,eax
                mov     eax,dword ptr [ebp]-1cH
                add     eax,00000004H
                and     al,0fcH
                mov     edx,eax
                call    near ptr stackavail_
                cmp     edx,eax
                jae     short L70
                mov     eax,dword ptr [ebp]-1cH
                add     eax,00000004H
                and     al,0fcH
                sub     esp,eax
                mov     eax,esp
                mov     dword ptr [ebp]-2cH,eax
                jmp     short L71
L70:            mov     dword ptr [ebp]-2cH,00000000H
L71:            mov     eax,dword ptr [ebp]-2cH
                mov     dword ptr [ebp]-20H,eax
                mov     ebx,dword ptr [ebp]-1cH
                mov     edx,dword ptr [ebp]-28H
                mov     eax,dword ptr [ebp]-20H
                call    near ptr strncpy_
                mov     eax,dword ptr [ebp]-20H
                add     eax,dword ptr [ebp]-1cH
                mov     byte ptr [eax],00H
                mov     eax,dword ptr [ebp]-20H
                call    near ptr isvalidident_
                cmp     eax,0ffffffffH
                jne     short L72
                mov     dword ptr [ebp]-24H,0ffffffffH
                jmp     near ptr L79
L72:            mov     dword ptr [ebp]-18H,offset DGROUP:_CmdlineConstList
L73:            mov     eax,dword ptr [ebp]-18H
                cmp     dword ptr [eax],00000000H
                jne     short L75
                jmp     short L76
L74:            mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     dword ptr [ebp]-18H,eax
                jmp     short L73
L75:            jmp     short L74
L76:            mov     eax,00000008H
                call    near ptr AsmAlloc_
                mov     edx,eax
                mov     eax,dword ptr [ebp]-18H
                mov     dword ptr [eax],edx
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     dword ptr [eax],00000000H
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strlen_
                add     eax,00000003H
                call    near ptr AsmAlloc_
                mov     edx,eax
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     dword ptr [eax]+4H,edx
                mov     edx,dword ptr [ebp]-28H
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     eax,dword ptr [eax]+4H
                call    near ptr strcpy_
                mov     edx,0000003dH
                mov     eax,dword ptr [ebp]-28H
                call    near ptr strchr_
                test    eax,eax
                jne     short L78
                mov     edx,00000023H
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     eax,dword ptr [eax]+4H
                call    near ptr strchr_
                mov     dword ptr [ebp]-20H,eax
                cmp     dword ptr [ebp]-20H,00000000H
                jne     short L77
                mov     edx,offset DGROUP:L167
                mov     eax,dword ptr [ebp]-18H
                mov     eax,dword ptr [eax]
                mov     eax,dword ptr [eax]+4H
                call    near ptr strcat_
                jmp     short L78
L77:            mov     eax,dword ptr [ebp]-20H
                mov     byte ptr [eax],3dH
L78:            mov     dword ptr [ebp]-24H,00000001H
L79:            mov     eax,dword ptr [ebp]-24H
                lea     esp,[ebp]-14H
                pop     edi
                pop     esi
                pop     edx
                pop     ecx
                pop     ebx
                pop     ebp
                ret
set_processor_type_:
                push    ebp
                mov     ebp,esp
                push    0000002cH
                call    near ptr __CHK
                push    ebx
                push    ecx
                push    edx
                push    esi
                push    edi
                sub     esp,00000010H
                call    near ptr stackavail_
                cmp     eax,000000a0H
                jbe     short L80
                mov     eax,000000a0H
                sub     esp,eax
                mov     eax,esp
                mov     dword ptr [ebp]-20H,eax
                jmp     short L81
L80:            mov     dword ptr [ebp]-20H,00000000H
L81:            mov     eax,dword ptr [ebp]-20H
                mov     dword ptr [ebp]-18H,eax
                cmp     dword ptr [ebp]-18H,00000000H
                jne     short L83
                mov     eax,00000441H
                call    near ptr AsmError_
                mov     eax,0ffffffffH
                jmp     near ptr exit_
                nop
L82             DD      L84
                DD      L85
                DD      L86
                DD      L87
                DD      L88
                DD      L89
                DD      L91
                DD      L90
L83:            mov     al,byte ptr _ProcessorType
                sub     al,30H
                mov     byte ptr [ebp]-24H,al
                cmp     byte ptr [ebp]-24H,07H
                ja      short L91
                xor     eax,eax
                mov     al,byte ptr [ebp]-24H
                shl     eax,02H
                jmp     dword ptr cs:L82[eax]
L84:            mov     dword ptr [ebp]-1cH,offset DGROUP:L168
                jmp     short L91
L85:            mov     dword ptr [ebp]-1cH,offset DGROUP:L169
                jmp     short L91
L86:            mov     dword ptr [ebp]-1cH,offset DGROUP:L170
                jmp     short L91
L87:            mov     dword ptr [ebp]-1cH,offset DGROUP:L171
                jmp     short L91
L88:            mov     dword ptr [ebp]-1cH,offset DGROUP:L172
                jmp     short L91
L89:            mov     dword ptr [ebp]-1cH,offset DGROUP:L173
                jmp     short L91
L90:            jmp     short L92
L91:            mov     eax,dword ptr [ebp]-18H
                mov     byte ptr [eax],00H
                mov     edx,offset DGROUP:L174
                mov     eax,dword ptr [ebp]-18H
                call    near ptr strcat_
                mov     edx,dword ptr [ebp]-1cH
                mov     eax,dword ptr [ebp]-18H
                call    near ptr strcat_
                mov     eax,dword ptr [ebp]-18H
                call    near ptr InputQueueLine_
                mov     eax,dword ptr [ebp]-18H
                mov     byte ptr [eax],00H
                mov     edx,offset DGROUP:L175
                mov     eax,dword ptr [ebp]-18H
                call    near ptr strcat_
                mov     edx,dword ptr [ebp]-1cH
                mov     eax,dword ptr [ebp]-18H
                call    near ptr strcat_
                mov     edx,offset DGROUP:L176
                mov     eax,dword ptr [ebp]-18H
                call    near ptr strcat_
                mov     eax,dword ptr [ebp]-18H
                call    near ptr InputQueueLine_
L92:            lea     esp,[ebp]-14H
                pop     edi
                pop     esi
                pop     edx
                pop     ecx
                pop     ebx
                pop     ebp
                ret
set_mem_type_:  push    ebp
                mov     ebp,esp
                push    0000002cH
                call    near ptr __CHK
                push    ebx
                push    ecx
                push    edx
                push    esi
                push    edi
                sub     esp,00000010H
                call    near ptr stackavail_
                cmp     eax,000000a0H
                jbe     short L93
                mov     eax,000000a0H
                sub     esp,eax
                mov     eax,esp
                mov     dword ptr [ebp]-20H,eax
                jmp     short L94
L93:            mov     dword ptr [ebp]-20H,00000000H
L94:            mov     eax,dword ptr [ebp]-20H
                mov     dword ptr [ebp]-18H,eax
                cmp     dword ptr [ebp]-18H,00000000H
                jne     short L95
                mov     eax,00000441H
                call    near ptr AsmError_
                mov     eax,0ffffffffH
                jmp     near ptr exit_
L95:            mov     edi,dword ptr [ebp]-18H
                mov     esi,offset DGROUP:L177
                movsd
                movsd
                mov     al,byte ptr _MemType
                mov     byte ptr [ebp]-24H,al
                cmp     byte ptr [ebp]-24H,6cH
                jb      short L97
                cmp     byte ptr [ebp]-24H,6cH
                jbe     near ptr L101
                cmp     byte ptr [ebp]-24H,73H
                jb      short L96
                cmp     byte ptr [ebp]-24H,73H
                jbe     near ptr L103
                cmp     byte ptr [ebp]-24H,74H
                je      near ptr L104
                jmp     near ptr L105
L96:            cmp     byte ptr [ebp]-24H,6dH
                je      short L102
                jmp     near ptr L105
L97:            cmp     byte ptr [ebp]-24H,66H
                jb      short L98
                cmp     byte ptr [ebp]-24H,66H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?