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 + -
显示快捷键?