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