macro.esm
来自「开放源码的编译器open watcom 1.6.0版的源代码」· ESM 代码 · 共 2,310 行 · 第 1/5 页
ESM
2,310 行
.387
PUBLIC ExpandMacro_
PUBLIC MacroDef_
EXTRN __STK:BYTE
EXTRN AsmAlloc_:BYTE
EXTRN strlen_:BYTE
EXTRN strcpy_:BYTE
EXTRN strncmp_:BYTE
EXTRN strncpy_:BYTE
EXTRN strcat_:BYTE
EXTRN sprintf_:BYTE
EXTRN InternalError_:BYTE
EXTRN AsmFree_:BYTE
EXTRN __IsTable:BYTE
EXTRN wipe_space_:BYTE
EXTRN strnicmp_:BYTE
EXTRN _AsmBuffer:BYTE
EXTRN AsmError_:BYTE
EXTRN PushLineQueue_:BYTE
EXTRN _MacroLocalVarCounter:BYTE
EXTRN InputQueueLine_:BYTE
EXTRN _Parse_Pass:BYTE
EXTRN AsmGetSymbol_:BYTE
EXTRN _Token_Count:BYTE
EXTRN strcmp_:BYTE
EXTRN ReadTextLine_:BYTE
EXTRN strncat_:BYTE
EXTRN atoi_:BYTE
EXTRN stackavail_:BYTE
EXTRN DoDebugMsg_:BYTE
EXTRN itoa_:BYTE
EXTRN ExpandSymbol_:BYTE
EXTRN EvalExpr_:BYTE
EXTRN _StringBuf:BYTE
EXTRN AsmScan_:BYTE
EXTRN PushMacro_:BYTE
EXTRN dir_insert_:BYTE
EXTRN get_curr_filename_:BYTE
EXTRN _big_code_:BYTE
DGROUP GROUP CONST,CONST2,_DATA,_BSS
macro_TEXT SEGMENT BYTE PUBLIC USE16 'CODE'
ASSUME CS:macro_TEXT, DS:DGROUP, SS:DGROUP
L$1:
DB 4dH, 61H, 63H, 72H, 6fH, 20H, 65H, 78H
DB 70H, 61H, 6eH, 73H, 69H, 6fH, 6eH, 3aH
DB 20H, 20H, 25H, 73H, 20H, 0aH, 0
L$2:
DB 2eH, 2eH, 5cH, 63H, 5cH, 6dH, 61H, 63H
DB 72H, 6fH, 2eH, 63H, 0
L$3:
DB 20H, 54H, 45H, 58H, 54H, 45H, 51H, 55H
DB 20H, 0
L$4:
DB 3fH, 3fH, 25H, 23H, 30H, 34H, 64H, 0
L$5:
DB 6cH, 6fH, 63H, 61H, 6cH, 0
L$6:
DB 6dH, 61H, 63H, 72H, 6fH, 0
L$7:
DB 65H, 6eH, 64H, 6dH, 0
L$8:
DB 52H, 45H, 51H, 0
L$9:
DB 25H, 32H, 64H, 0
L$10:
DB 23H, 0
L$11:
push bp
mov bp,sp
push ax
mov ax,1cH
call far ptr __STK
pop ax
push si
push di
sub sp,14H
mov word ptr -18H[bp],ax
mov word ptr -16H[bp],dx
mov word ptr -14H[bp],bx
mov word ptr -12H[bp],cx
mov ax,word ptr -18H[bp]
mov word ptr -0cH[bp],ax
mov ax,word ptr -16H[bp]
mov word ptr -0aH[bp],ax
L$12:
lds bx,dword ptr -0cH[bp]
mov dx,word ptr [bx]
lds bx,dword ptr -0cH[bp]
mov ax,word ptr 2[bx]
xor cx,cx
xor bx,bx
cmp ax,bx
jne L$14
cmp dx,cx
jne L$14
jmp L$15
L$13:
lds bx,dword ptr -0cH[bp]
mov dx,word ptr [bx]
lds bx,dword ptr -0cH[bp]
mov ax,word ptr 2[bx]
mov word ptr -0cH[bp],dx
mov word ptr -0aH[bp],ax
jmp L$12
L$14:
jmp L$13
L$15:
mov ax,9
call far ptr AsmAlloc_
mov cx,ax
mov bx,dx
mov word ptr -8[bp],cx
mov word ptr -6[bp],bx
lds bx,dword ptr -8[bp]
mov word ptr [bx],0
lds bx,dword ptr -8[bp]
mov word ptr 2[bx],0
mov bx,word ptr -14H[bp]
mov dx,word ptr -12H[bp]
mov ax,bx
call far ptr strlen_
inc ax
call far ptr AsmAlloc_
mov cx,ax
mov bx,dx
lds si,dword ptr -8[bp]
mov word ptr 4[si],cx
lds si,dword ptr -8[bp]
mov word ptr 6[si],bx
lds bx,dword ptr -8[bp]
mov byte ptr 8[bx],0
mov si,word ptr -14H[bp]
mov cx,word ptr -12H[bp]
lds bx,dword ptr -8[bp]
mov bx,word ptr 4[bx]
lds di,dword ptr -8[bp]
mov dx,word ptr 6[di]
mov ax,bx
mov bx,si
call far ptr strcpy_
mov bx,word ptr -8[bp]
lds si,dword ptr -0cH[bp]
mov word ptr [si],bx
mov bx,word ptr -6[bp]
lds si,dword ptr -0cH[bp]
mov word ptr 2[si],bx
mov bx,word ptr -8[bp]
mov word ptr -10H[bp],bx
mov bx,word ptr -6[bp]
mov word ptr -0eH[bp],bx
mov ax,word ptr -10H[bp]
mov dx,word ptr -0eH[bp]
lea sp,-4[bp]
pop di
pop si
pop bp
ret
L$16:
push bp
mov bp,sp
push ax
mov ax,38H
call far ptr __STK
pop ax
push si
push di
sub sp,26H
mov word ptr -1cH[bp],ax
mov word ptr -1aH[bp],dx
mov word ptr -20H[bp],bx
mov word ptr -1eH[bp],cx
mov byte ptr -8[bp],0
lds bx,dword ptr 6[bp]
mov ax,word ptr 4[bx]
mov word ptr -18H[bp],ax
lds bx,dword ptr 6[bp]
mov ax,word ptr 6[bx]
mov word ptr -16H[bp],ax
mov ax,word ptr -1cH[bp]
mov word ptr -10H[bp],ax
mov ax,word ptr -1aH[bp]
mov word ptr -0eH[bp],ax
L$17:
mov cx,word ptr -10H[bp]
mov bx,word ptr -0eH[bp]
xor dx,dx
xor ax,ax
cmp bx,ax
jne L$19
cmp cx,dx
jne L$19
jmp near ptr L$30
L$18:
lds bx,dword ptr -10H[bp]
mov dx,word ptr [bx]
lds bx,dword ptr -10H[bp]
mov ax,word ptr 2[bx]
mov word ptr -10H[bp],dx
mov word ptr -0eH[bp],ax
jmp L$17
L$19:
lds bx,dword ptr -10H[bp]
mov dx,word ptr 4[bx]
lds bx,dword ptr -10H[bp]
mov ax,word ptr 6[bx]
xor cx,cx
xor bx,bx
cmp ax,bx
jne L$20
cmp dx,cx
je L$21
L$20:
lds bx,dword ptr -10H[bp]
mov bx,word ptr 4[bx]
lds si,dword ptr -10H[bp]
mov dx,word ptr 6[si]
mov ax,bx
call far ptr strlen_
mov dl,byte ptr 4[bp]
xor dh,dh
cmp ax,dx
je L$22
L$21:
jmp L$23
L$22:
mov dl,byte ptr 4[bp]
xor dh,dh
push dx
lds si,dword ptr -10H[bp]
mov si,word ptr 4[si]
lds bx,dword ptr -10H[bp]
mov cx,word ptr 6[bx]
mov bx,word ptr -20H[bp]
mov dx,word ptr -1eH[bp]
mov ax,bx
mov bx,si
call far ptr strncmp_
test ax,ax
je L$24
L$23:
jmp near ptr L$29
L$24:
mov bx,word ptr -18H[bp]
mov dx,word ptr -16H[bp]
mov ax,bx
call far ptr strlen_
mov dx,ax
mov al,byte ptr 4[bp]
xor ah,ah
sub dx,ax
add dx,4
mov ax,dx
call far ptr AsmAlloc_
mov bx,dx
mov word ptr -14H[bp],ax
mov word ptr -12H[bp],bx
mov dx,word ptr -20H[bp]
mov ax,word ptr -1eH[bp]
sub dx,word ptr -18H[bp]
mov byte ptr -6[bp],dl
lds bx,dword ptr -20H[bp]
cmp byte ptr -1[bx],26H
jne L$25
mov al,byte ptr -6[bp]
dec byte ptr -6[bp]
L$25:
mov dl,byte ptr -6[bp]
xor dh,dh
push dx
mov si,word ptr -18H[bp]
mov cx,word ptr -16H[bp]
mov bx,word ptr -14H[bp]
mov dx,word ptr -12H[bp]
mov ax,bx
mov bx,si
call far ptr strncpy_
mov dl,byte ptr -6[bp]
xor dh,dh
lds bx,dword ptr -14H[bp]
add bx,dx
mov byte ptr [bx],0
mov cx,cs
mov dx,offset L$10
mov si,dx
mov bx,word ptr -14H[bp]
mov dx,word ptr -12H[bp]
mov ax,bx
mov bx,si
call far ptr strcat_
mov dl,byte ptr -8[bp]
xor dh,dh
push dx
mov dx,cs
mov bx,offset L$9
push dx
push bx
mov dx,ss
lea bx,-2aH[bp]
push dx
push bx
call far ptr sprintf_
add sp,0aH
cmp ax,2
je L$26
mov cx,94H
mov dx,cs
mov ax,offset L$2
mov bx,ax
mov ax,bx
mov bx,cx
jmp far ptr InternalError_
L$26:
cmp byte ptr -2aH[bp],20H
jne L$27
mov byte ptr -2aH[bp],30H
L$27:
mov cx,ss
lea dx,-2aH[bp]
mov si,dx
mov bx,word ptr -14H[bp]
mov dx,word ptr -12H[bp]
mov ax,bx
mov bx,si
call far ptr strcat_
mov dl,byte ptr 4[bp]
xor dh,dh
lds bx,dword ptr -20H[bp]
add bx,dx
cmp byte ptr [bx],26H
jne L$28
mov al,byte ptr 4[bp]
inc byte ptr 4[bp]
L$28:
mov al,byte ptr 4[bp]
xor ah,ah
mov cx,word ptr -1eH[bp]
mov si,word ptr -20H[bp]
add si,ax
mov bx,word ptr -14H[bp]
mov dx,word ptr -12H[bp]
mov ax,bx
mov bx,si
call far ptr strcat_
mov ax,word ptr -14H[bp]
lds bx,dword ptr 6[bp]
mov word ptr 4[bx],ax
mov ax,word ptr -12H[bp]
lds bx,dword ptr 6[bp]
mov word ptr 6[bx],ax
lds bx,dword ptr 6[bp]
inc byte ptr 8[bx]
mov bx,word ptr -18H[bp]
mov dx,word ptr -16H[bp]
mov ax,bx
call far ptr AsmFree_
mov ax,word ptr -12H[bp]
mov word ptr -0aH[bp],ax
mov ax,word ptr -14H[bp]
add ax,3
mov word ptr -0cH[bp],ax
jmp L$31
L$29:
mov al,byte ptr -8[bp]
inc byte ptr -8[bp]
jmp near ptr L$18
L$30:
mov al,byte ptr 4[bp]
xor ah,ah
mov dx,ax
mov ax,word ptr -1eH[bp]
mov word ptr -0aH[bp],ax
mov bx,word ptr -20H[bp]
add bx,dx
mov word ptr -0cH[bp],bx
L$31:
mov ax,word ptr -0cH[bp]
mov dx,word ptr -0aH[bp]
lea sp,-4[bp]
pop di
pop si
pop bp
ret 6
L$32:
push bp
mov bp,sp
push ax
mov ax,26H
call far ptr __STK
pop ax
push si
push di
sub sp,18H
mov word ptr -1cH[bp],ax
mov word ptr -1aH[bp],dx
mov word ptr -18H[bp],bx
mov word ptr -16H[bp],cx
mov byte ptr -6[bp],0
lds bx,dword ptr -1cH[bp]
mov ax,word ptr 4[bx]
mov word ptr -10H[bp],ax
lds bx,dword ptr -1cH[bp]
mov ax,word ptr 6[bx]
mov word ptr -0eH[bp],ax
mov ax,word ptr -10H[bp]
mov word ptr -14H[bp],ax
mov ax,word ptr -0eH[bp]
mov word ptr -12H[bp],ax
L$33:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],0
jne L$35
jmp near ptr L$76
L$34:
jmp L$33
L$35:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],0
jne L$37
jmp near ptr L$53
L$36:
mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
inc word ptr -14H[bp]
jmp L$35
L$37:
lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],0c0H
jne L$38
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$39
L$38:
jmp L$40
L$39:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],5fH
jne L$41
L$40:
jmp L$42
L$41:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],40H
jne L$43
L$42:
jmp L$44
L$43:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],24H
jne L$45
L$44:
jmp L$46
L$45:
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],3fH
jne L$48
L$46:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?