mainnew.esm
来自「开放源码的编译器open watcom 1.6.0版的源代码」· ESM 代码 · 共 2,406 行 · 第 1/5 页
ESM
2,406 行
.387
PUBLIC do_init_stuff_
PUBLIC main_
PUBLIC trademark_
PUBLIC AsmQueryExternal_
PUBLIC AsmQueryType_
PUBLIC _Options
PUBLIC _AsmFiles
PUBLIC _pobjState
EXTRN __STK:BYTE
EXTRN __IsTable:BYTE
EXTRN tolower_:BYTE
EXTRN strlen_:BYTE
EXTRN stackavail_:BYTE
EXTRN strcpy_:BYTE
EXTRN strcat_:BYTE
EXTRN getenv_:BYTE
EXTRN AddStringToIncludePath_:BYTE
EXTRN MsgInit_:BYTE
EXTRN exit_:BYTE
EXTRN AsmInit_:BYTE
EXTRN PushLineQueue_:BYTE
EXTRN WriteObjModule_:BYTE
EXTRN PrintStats_:BYTE
EXTRN MsgFini_:BYTE
EXTRN PrintfUsage_:BYTE
EXTRN printf_:BYTE
EXTRN AsmFree_:BYTE
EXTRN MemInit_:BYTE
EXTRN ObjRecInit_:BYTE
EXTRN GenMSOmfInit_:BYTE
EXTRN GenMSOmfFini_:BYTE
EXTRN AsmShutDown_:BYTE
EXTRN MemFini_:BYTE
EXTRN fopen_:BYTE
EXTRN Fatal_:BYTE
EXTRN ObjWriteOpen_:BYTE
EXTRN DelErrFile_:BYTE
EXTRN MsgGet_:BYTE
EXTRN _splitpath2_:BYTE
EXTRN _makepath_:BYTE
EXTRN AsmAlloc_:BYTE
EXTRN strchr_:BYTE
EXTRN AsmError_:BYTE
EXTRN StoreConstant_:BYTE
EXTRN MsgPrintf1_:BYTE
EXTRN _Code:BYTE
EXTRN cpu_directive_:BYTE
EXTRN __osmode:BYTE
EXTRN strupr_:BYTE
EXTRN stricmp_:BYTE
EXTRN AsmWarn_:BYTE
EXTRN InputQueueLine_:BYTE
EXTRN atoi_:BYTE
EXTRN DoDebugMsg_:BYTE
EXTRN InputQueueFile_:BYTE
EXTRN _cstart_:BYTE
EXTRN _big_code_:BYTE
EXTRN __argc:BYTE
DGROUP GROUP CONST,CONST2,_DATA,_BSS
main_TEXT SEGMENT BYTE PUBLIC USE16 'CODE'
ASSUME CS:main_TEXT, DS:DGROUP, SS:DGROUP
L$1:
DB 57H, 41H, 54H, 43H, 4fH, 4dH, 20H, 69H
DB 73H, 20H, 61H, 20H, 74H, 72H, 61H, 64H
DB 65H, 6dH, 61H, 72H, 6bH, 20H, 6fH, 66H
DB 20H, 57H, 41H, 54H, 43H, 4fH, 4dH, 20H
DB 49H, 6eH, 74H, 65H, 72H, 6eH, 61H, 74H
DB 69H, 6fH, 6eH, 61H, 6cH, 20H, 43H, 6fH
DB 72H, 70H, 2eH, 0
L$2:
DB 43H, 6fH, 70H, 79H, 72H, 69H, 67H, 68H
DB 74H, 20H, 62H, 79H, 20H, 57H, 41H, 54H
DB 43H, 4fH, 4dH, 20H, 49H, 6eH, 74H, 65H
DB 72H, 6eH, 61H, 74H, 69H, 6fH, 6eH, 61H
DB 6cH, 20H, 43H, 6fH, 72H, 70H, 2eH, 20H
DB 31H, 39H, 39H, 32H, 2cH, 20H, 31H, 39H
DB 39H, 33H, 2eH, 20H, 41H, 6cH, 6cH, 20H
DB 72H, 69H, 67H, 68H, 74H, 73H, 20H, 72H
DB 65H, 73H, 65H, 72H, 76H, 65H, 64H, 2eH
DB 0
L$3:
DB 57H, 41H, 54H, 43H, 4fH, 4dH, 20H, 41H
DB 73H, 73H, 65H, 6dH, 62H, 6cH, 65H, 72H
DB 20H, 56H, 65H, 72H, 73H, 69H, 6fH, 6eH
DB 20H, 30H, 2eH, 39H, 0
L$4:
DB 64H, 65H, 62H, 75H, 67H, 67H, 69H, 6eH
DB 67H, 20H, 6fH, 75H, 74H, 70H, 75H, 74H
DB 20H, 6fH, 6eH, 20H, 0aH, 0
L$5:
DB 5fH, 5fH, 57H, 49H, 4eH, 44H, 4fH, 57H
DB 53H, 5fH, 33H, 38H, 36H, 5fH, 5fH, 0
L$6:
DB 5fH, 5fH, 4eH, 45H, 54H, 57H, 41H, 52H
DB 45H, 5fH, 33H, 38H, 36H, 5fH, 5fH, 0
L$7:
DB 5fH, 5fH, 52H, 45H, 47H, 49H, 53H, 54H
DB 45H, 52H, 5fH, 5fH, 0
L$8:
DB 5fH, 5fH, 46H, 50H, 49H, 38H, 37H, 5fH
DB 5fH, 0
L$9:
DB 5fH, 5fH, 4dH, 53H, 44H, 4fH, 53H, 5fH
DB 5fH, 0
L$10:
DB 5fH, 5fH, 53H, 54H, 41H, 43H, 4bH, 5fH
DB 5fH, 0
L$11:
DB 50H, 45H, 4eH, 50H, 4fH, 49H, 4eH, 54H
DB 0
L$12:
DB 5fH, 5fH, 57H, 41H, 53H, 4dH, 5fH, 5fH
DB 0
L$13:
DB 5fH, 49H, 4eH, 43H, 4cH, 55H, 44H, 45H
DB 0
L$14:
DB 5fH, 5fH, 46H, 50H, 43H, 5fH, 5fH, 0
L$15:
DB 5fH, 5fH, 46H, 50H, 49H, 5fH, 5fH, 0
L$16:
DB 2eH, 4dH, 4fH, 44H, 45H, 4cH, 20H, 0
L$17:
DB 43H, 4fH, 4dH, 50H, 41H, 43H, 54H, 0
L$18:
DB 57H, 49H, 4eH, 44H, 4fH, 57H, 53H, 0
L$19:
DB 4eH, 45H, 54H, 57H, 41H, 52H, 45H, 0
L$20:
DB 49H, 4eH, 43H, 4cH, 55H, 44H, 45H, 0
L$21:
DB 4dH, 45H, 44H, 49H, 55H, 4dH, 0
L$22:
DB 66H, 70H, 69H, 38H, 37H, 0
L$23:
DB 53H, 4dH, 41H, 4cH, 4cH, 0
L$24:
DB 4cH, 41H, 52H, 47H, 45H, 0
L$25:
DB 54H, 49H, 4eH, 59H, 0
L$26:
DB 48H, 55H, 47H, 45H, 0
L$27:
DB 46H, 4cH, 41H, 54H, 0
L$28:
DB 57H, 41H, 53H, 4dH, 0
L$29:
DB 66H, 70H, 63H, 0
L$30:
DB 66H, 70H, 69H, 0
L$31:
DB 51H, 4eH, 58H, 0
L$32:
DB 4fH, 53H
L$33:
DB 32H, 0
L$34:
DB 44H, 4fH
L$35:
DB 53H, 0
L$36:
DB 65H, 72H, 72H, 0
L$37:
DB 6fH, 62H, 6aH, 0
L$38:
DB 61H, 73H, 6dH, 0
L$39:
DB 25H, 73H, 0aH, 0
L$40:
DB 2fH, 6dH, 0
L$41:
DB 4eH, 54H, 0
L$42:
DB 5fH, 5fH, 0
L$43:
DB 37H, 0
L$44:
DB 31H, 0
L$45:
DB 72H, 0
L$46:
DB 20H, 0
L$47:
push bp
mov bp,sp
push ax
mov ax,18H
call far ptr __STK
pop ax
push bx
push cx
push si
push di
sub sp,0cH
mov word ptr -14H[bp],ax
mov word ptr -12H[bp],dx
lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],20H
je L$48
mov word ptr -0cH[bp],0ffffH
jmp near ptr L$66
L$48:
mov bx,word ptr -14H[bp]
mov word ptr -10H[bp],bx
mov bx,word ptr -12H[bp]
mov word ptr -0eH[bp],bx
L$49:
lds bx,dword ptr -10H[bp]
cmp byte ptr [bx],0
jne L$51
jmp near ptr L$65
L$50:
mov dx,word ptr -10H[bp]
mov ax,word ptr -0eH[bp]
inc word ptr -10H[bp]
jmp L$49
L$51:
lds bx,dword ptr -10H[bp]
mov al,byte ptr [bx]
xor ah,ah
call far ptr tolower_
mov byte ptr -0aH[bp],al
cmp byte ptr -0aH[bp],5fH
je L$52
cmp byte ptr -0aH[bp],2eH
jne L$53
L$52:
jmp L$54
L$53:
cmp byte ptr -0aH[bp],24H
jne L$55
L$54:
jmp L$56
L$55:
cmp byte ptr -0aH[bp],40H
jne L$57
L$56:
jmp L$58
L$57:
cmp byte ptr -0aH[bp],3fH
jne L$59
L$58:
jmp L$60
L$59:
mov bl,byte ptr -0aH[bp]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],20H
je L$61
L$60:
jmp L$62
L$61:
mov bl,byte ptr -0aH[bp]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],80H
je L$63
L$62:
jmp L$64
L$63:
mov word ptr -0cH[bp],0ffffH
jmp L$66
L$64:
jmp L$50
L$65:
mov word ptr -0cH[bp],1
L$66:
mov ax,word ptr -0cH[bp]
lea sp,-8[bp]
pop di
pop si
pop cx
pop bx
pop bp
ret
L$67:
push bp
mov bp,sp
mov ax,1aH
call far ptr __STK
push bx
push cx
push dx
push si
push di
sub sp,0cH
mov bx,word ptr ss:L$334
mov dx,word ptr ss:L$335
mov ax,bx
call far ptr strlen_
add ax,0bH
and al,0feH
mov dx,ax
call far ptr stackavail_
cmp dx,ax
jae L$68
mov bx,word ptr ss:L$334
mov dx,word ptr ss:L$335
mov ax,bx
call far ptr strlen_
add ax,0bH
and al,0feH
sub sp,ax
mov ax,sp
mov dx,ss
mov bx,dx
mov word ptr -16H[bp],ax
mov word ptr -14H[bp],bx
jmp L$69
L$68:
mov word ptr -16H[bp],0
mov word ptr -14H[bp],0
L$69:
mov ax,word ptr -16H[bp]
mov word ptr -12H[bp],ax
mov ax,word ptr -14H[bp]
mov word ptr -10H[bp],ax
mov si,word ptr ss:L$334
mov cx,word ptr ss:L$335
mov bx,word ptr -12H[bp]
mov dx,word ptr -10H[bp]
mov ax,bx
mov bx,si
call far ptr strcpy_
mov cx,cs
mov ax,offset L$13
mov si,ax
mov bx,word ptr -12H[bp]
mov dx,word ptr -10H[bp]
mov ax,bx
mov bx,si
call far ptr strcat_
mov bx,word ptr -12H[bp]
mov dx,word ptr -10H[bp]
mov ax,bx
call far ptr getenv_
mov bx,ax
mov ax,dx
mov word ptr -0eH[bp],bx
mov word ptr -0cH[bp],ax
mov dx,word ptr -0eH[bp]
mov ax,word ptr -0cH[bp]
xor cx,cx
xor bx,bx
cmp ax,bx
jne L$70
cmp dx,cx
je L$71
L$70:
mov bx,word ptr -0eH[bp]
mov dx,word ptr -0cH[bp]
mov ax,bx
call far ptr AddStringToIncludePath_
L$71:
lea sp,-0aH[bp]
pop di
pop si
pop dx
pop cx
pop bx
pop bp
ret
do_init_stuff_:
inc bp
push bp
mov bp,sp
push ax
mov ax,16H
call far ptr __STK
pop ax
push dx
push si
push di
sub sp,0aH
mov word ptr -8[bp],ax
mov word ptr -10H[bp],bx
mov word ptr -0eH[bp],cx
lds bx,dword ptr -10H[bp]
mov bx,word ptr [bx]
lds si,dword ptr -10H[bp]
mov dx,word ptr 2[si]
mov ax,bx
call far ptr MsgInit_
test ax,ax
je L$72
mov ax,1
jmp far ptr exit_
L$72:
mov bx,0ffffH
mov dx,0ffffH
mov ax,0ffffH
call far ptr AsmInit_
mov dx,cs
mov ax,offset L$12
mov bx,ax
mov ax,bx
call near ptr L$137
xor cx,cx
mov dx,cs
mov ax,offset L$28
mov bx,ax
mov ax,bx
mov bx,cx
call near ptr L$118
mov dx,word ptr -10H[bp]
mov cx,word ptr -0eH[bp]
mov ax,word ptr -8[bp]
mov bx,dx
call near ptr L$317
call near ptr L$196
call near ptr L$67
mov dx,cs
mov ax,offset L$20
mov bx,ax
mov ax,bx
call far ptr getenv_
mov bx,ax
mov ax,dx
mov word ptr -0cH[bp],bx
mov word ptr -0aH[bp],ax
mov cx,word ptr -0cH[bp]
mov bx,word ptr -0aH[bp]
xor dx,dx
xor ax,ax
cmp bx,ax
jne L$73
cmp cx,dx
je L$74
L$73:
mov bx,word ptr -0cH[bp]
mov dx,word ptr -0aH[bp]
mov ax,bx
call far ptr AddStringToIncludePath_
L$74:
cmp byte ptr ss:L$325,0
jne L$75
cmp byte ptr ss:L$326,0
je L$76
L$75:
jmp L$77
L$76:
mov byte ptr ss:L$326,1
push cs
call near ptr trademark_
L$77:
call near ptr L$101
call far ptr PushLineQueue_
lea sp,-6[bp]
pop di
pop si
pop dx
pop bp
dec bp
retf
main_:
inc bp
push bp
mov bp,sp
push ax
mov ax,14H
call far ptr __STK
pop ax
push dx
push si
push di
sub sp,8
mov word ptr -0aH[bp],ax
mov word ptr -0eH[bp],bx
mov word ptr -0cH[bp],cx
call near ptr L$95
mov dx,word ptr -0eH[bp]
mov cx,word ptr -0cH[bp]
mov ax,word ptr -0aH[bp]
mov bx,dx
push cs
call near ptr do_init_stuff_
call far ptr WriteObjModule_
cmp byte ptr ss:L$325,0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?