macro.asm
来自「开放源码的编译器open watcom 1.6.0版的源代码」· 汇编 代码 · 共 1,661 行 · 第 1/5 页
ASM
1,661 行
mov ax,word ptr -12H[bp]
mov word ptr -0aH[bp],ax
mov ax,word ptr -14H[bp]
add ax,0003H
mov word ptr -0cH[bp],ax
jmp short L29
L27: mov al,byte ptr -8H[bp]
inc byte ptr -8H[bp]
jmp near ptr L16
L28: mov al,byte ptr +4H[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
L29: mov ax,word ptr -0cH[bp]
mov dx,word ptr -0aH[bp]
lea sp,-4H[bp]
pop di
pop si
pop bp
ret 0006H
put_parm_placeholders_in_line_:
push bp
mov bp,sp
push ax
mov ax,0026H
call far ptr __STK
pop ax
push si
push di
sub sp,0018H
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 -6H[bp],00H
lds bx,dword ptr -1cH[bp]
mov ax,word ptr +4H[bx]
mov word ptr -10H[bp],ax
lds bx,dword ptr -1cH[bp]
mov ax,word ptr +6H[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
L30: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],00H
jne short L32
jmp near ptr L73
L31: jmp short L30
L32: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],00H
jne short L34
jmp near ptr L50
L33: mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
inc word ptr -14H[bp]
jmp short L32
L34: lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],0c0H
jne short L35
lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],20H
je short L36
L35: jmp short L37
L36: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],5fH
jne short L38
L37: jmp short L39
L38: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],40H
jne short L40
L39: jmp short L41
L40: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],24H
jne short L42
L41: jmp short L43
L42: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],3fH
jne short L45
L43: mov cx,word ptr -14H[bp]
mov bx,word ptr -12H[bp]
mov dx,word ptr -10H[bp]
mov ax,word ptr -0eH[bp]
cmp bx,ax
jne short L44
cmp cx,dx
je short L50
L44: jmp short L33
L45: lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],02H
je short L48
L46: lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],02H
je short L47
mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
inc word ptr -14H[bp]
jmp short L46
L47: jmp short L50
L48: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],22H
jne short L49
mov al,byte ptr -6H[bp]
xor ah,ah
inc ax
mov bx,0002H
cwd
idiv bx
mov byte ptr -6H[bp],dl
mov ax,word ptr -14H[bp]
mov bx,word ptr -12H[bp]
inc word ptr -14H[bp]
jmp short L50
L49: mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
inc word ptr -14H[bp]
L50: mov bx,word ptr -14H[bp]
mov word ptr -0cH[bp],bx
mov bx,word ptr -12H[bp]
mov word ptr -0aH[bp],bx
L51: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],00H
jne short L53
jmp near ptr L64
L52: mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
inc word ptr -14H[bp]
jmp short L51
L53: lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],0c0H
jne short L54
lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],20H
je short L55
L54: jmp short L56
L55: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],5fH
jne short L57
L56: jmp short L58
L57: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],40H
jne short L59
L58: jmp short L60
L59: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],24H
jne short L61
L60: jmp short L62
L61: lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],3fH
jne short L63
L62: jmp short L52
L63: lds bx,dword ptr -14H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],02H
jne short L64
lds bx,dword ptr -14H[bp]
cmp byte ptr [bx],22H
jne short L64
mov bl,byte ptr -6H[bp]
xor bh,bh
lea ax,+1H[bx]
mov bx,0002H
cwd
idiv bx
mov byte ptr -6H[bp],dl
L64: mov dx,word ptr -14H[bp]
mov ax,word ptr -12H[bp]
sub dx,word ptr -0cH[bp]
mov byte ptr -8H[bp],dl
cmp byte ptr -6H[bp],00H
je short L65
lds bx,dword ptr -0cH[bp]
cmp byte ptr [bx],26H
jne short L66
L65: jmp short L67
L66: lds bx,dword ptr -0cH[bp]
cmp byte ptr -1H[bx],26H
jne short L68
L67: jmp short L69
L68: mov bl,byte ptr -8H[bp]
xor bh,bh
mov ds,word ptr -0aH[bp]
add bx,word ptr -0cH[bp]
cmp byte ptr +1H[bx],26H
jne short L72
L69: lds bx,dword ptr -0cH[bp]
cmp byte ptr [bx],00H
je short L70
cmp byte ptr -8H[bp],00H
ja short L71
L70: jmp short L72
L71: mov bx,word ptr -1cH[bp]
mov dx,word ptr -1aH[bp]
push dx
push bx
mov dl,byte ptr -8H[bp]
xor dh,dh
push dx
mov si,word ptr -0cH[bp]
mov cx,word ptr -0aH[bp]
mov bx,word ptr -18H[bp]
mov dx,word ptr -16H[bp]
mov ax,bx
mov bx,si
call near ptr replace_parm_
mov cx,ax
mov bx,dx
mov word ptr -14H[bp],cx
mov word ptr -12H[bp],bx
L72: jmp near ptr L31
L73: lea sp,-4H[bp]
pop di
pop si
pop bp
ret
lineis_: push bp
mov bp,sp
push ax
mov ax,0016H
call far ptr __STK
pop ax
push si
push di
sub sp,000cH
mov word ptr -10H[bp],ax
mov word ptr -0eH[bp],dx
mov word ptr -0cH[bp],bx
mov word ptr -0aH[bp],cx
mov bx,word ptr -0cH[bp]
mov dx,word ptr -0aH[bp]
mov ax,bx
call far ptr strlen_
mov word ptr -8H[bp],ax
mov bx,word ptr -10H[bp]
mov dx,word ptr -0eH[bp]
mov ax,bx
call far ptr wipe_space_
mov ax,word ptr -8H[bp]
push ax
mov si,word ptr -0cH[bp]
mov cx,word ptr -0aH[bp]
mov bx,word ptr -10H[bp]
mov dx,word ptr -0eH[bp]
mov ax,bx
mov bx,si
call far ptr strnicmp_
test ax,ax
je short L74
mov byte ptr -6H[bp],00H
jmp short L78
L74: lds bx,dword ptr -10H[bp]
add bx,word ptr -8H[bp]
cmp byte ptr [bx],00H
je short L75
lds bx,dword ptr -10H[bp]
add bx,word ptr -8H[bp]
mov bl,byte ptr [bx]
inc bl
xor bh,bh
test byte ptr ss:__IsTable[bx],02H
je short L76
L75: jmp short L77
L76: mov byte ptr -6H[bp],00H
jmp short L78
L77: mov byte ptr -6H[bp],01H
L78: mov al,byte ptr -6H[bp]
lea sp,-4H[bp]
pop di
pop si
pop bp
ret
macro_local_: push bp
mov bp,sp
mov ax,011cH
call far ptr __STK
push bx
push cx
push dx
push si
push di
sub sp,0104H
mov word ptr -0cH[bp],0000H
mov si,word ptr -0cH[bp]
shl si,1
shl si,1
mov bx,seg _AsmBuffer
mov ds,bx
lds bx,dword ptr _AsmBuffer[si]
cmp word ptr +2H[bx],0000H
jne short L79
cmp word ptr [bx],016bH
je short L80
L79: mov ax,0033H
call far ptr AsmError_
mov word ptr -0eH[bp],0ffffH
jmp near ptr L87
L80: call far ptr PushLineQueue_
mov ax,word ptr -0cH[bp]
inc word ptr -0cH[bp]
L81: mov si,word ptr -0cH[bp]
shl si,1
shl si,1
mov bx,seg _AsmBuffer
mov ds,bx
lds bx,dword ptr _AsmBuffer[si]
cmp byte ptr +4H[bx],00H
jne short L83
jmp near ptr L86
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?