support.esm

来自「开放源码的编译器open watcom 1.6.0版的源代码」· ESM 代码 · 共 201 行

ESM
201
字号
.387
		PUBLIC	_int86
		PUBLIC	_int86x
DGROUP		GROUP	_DATA
support_TEXT		SEGMENT	WORD PUBLIC USE16 'CODE'
support_TEXT		ENDS
_DATA		SEGMENT	WORD PUBLIC USE16 'DATA'
_DATA		ENDS
_BSS		SEGMENT	WORD PUBLIC USE16 'BSS'
_BSS		ENDS

_TEXT		SEGMENT	WORD PUBLIC USE16 'CODE'
		ASSUME CS:_TEXT, DS:DGROUP, SS:DGROUP
_int86:
    push        bp 
    mov         bp,sp 
    push        ax 
    push        bx 
    push        cx 
    push        dx 
    push        si 
    push        di 
    push        ds 
    push        es 
    lds         si,dword ptr 8[bp] 
    mov         ax,word ptr [si] 
    mov         bx,word ptr 2[si] 
    mov         cx,word ptr 4[si] 
    mov         dx,word ptr 6[si] 
    mov         di,word ptr 0aH[si] 
    mov         si,word ptr 8[si] 
    push        bp 
    cmp         word ptr 6[bp],8 
    jne         L$1 
    int         8 
    jmp         L$8 
L$1:
    cmp         word ptr 6[bp],9 
    jne         L$2 
    int         9 
    jmp         L$8 
L$2:
    cmp         word ptr 6[bp],10H 
    jne         L$3 
    int         10H 
    jmp         L$8 
L$3:
    cmp         word ptr 6[bp],13H 
    jne         L$4 
    int         13H 
    jmp         L$8 
L$4:
    cmp         word ptr 6[bp],15H 
    jne         L$5 
    clc         
    int         15H 
    jmp         L$8 
L$5:
    cmp         word ptr 6[bp],16H 
    jne         L$6 
    int         16H 
    jmp         L$8 
L$6:
    cmp         word ptr 6[bp],20H 
    jne         L$7 
    int         20H 
    jmp         L$8 
L$7:
    cmp         word ptr 6[bp],21H 
    jne         L$8 
    int         21H 
    jmp         L$8 
L$8:
    pop         bp 
    push        si 
    lds         si,dword ptr 0cH[bp] 
    mov         word ptr [si],ax 
    mov         word ptr 2[si],bx 
    mov         word ptr 4[si],cx 
    mov         word ptr 6[si],dx 
    mov         word ptr 0aH[si],di 
    pop         ax 
    mov         word ptr 8[si],ax 
    mov         word ptr 0cH[si],0 
    jae         L$9 
    mov         word ptr 0cH[si],1 
L$9:
    pushf       
    pop         ax 
    mov         word ptr 0eH[si],ax 
    pop         es 
    pop         ds 
    pop         di 
    pop         si 
    pop         dx 
    pop         cx 
    pop         bx 
    pop         ax 
    pop         bp 
    retf        
_int86x:
    push        bp 
    mov         bp,sp 
    push        ax 
    push        bx 
    push        cx 
    push        dx 
    push        si 
    push        di 
    push        ds 
    push        es 
    push        ds 
    lds         si,dword ptr 10H[bp] 
    mov         es,word ptr 6[si] 
    push        es 
    mov         es,word ptr [si] 
    lds         si,dword ptr 8[bp] 
    mov         ax,word ptr [si] 
    mov         bx,word ptr 2[si] 
    mov         cx,word ptr 4[si] 
    mov         dx,word ptr 6[si] 
    mov         di,word ptr 0aH[si] 
    mov         si,word ptr 8[si] 
    pop         ds 
    cmp         word ptr 6[bp],8 
    jne         L$10 
    int         8 
    jmp         L$16 
L$10:
    cmp         word ptr 6[bp],9 
    jne         L$11 
    int         9 
    jmp         L$16 
L$11:
    cmp         word ptr 6[bp],10H 
    jne         L$12 
    int         10H 
    jmp         L$16 
L$12:
    cmp         word ptr 6[bp],13H 
    jne         L$13 
    int         13H 
    jmp         L$16 
L$13:
    cmp         word ptr 6[bp],15H 
    jne         L$14 
    clc         
    int         15H 
    jmp         L$16 
L$14:
    cmp         word ptr 6[bp],16H 
    jne         L$15 
    int         16H 
    jmp         L$16 
L$15:
    cmp         word ptr 6[bp],21H 
    jne         L$16 
    int         21H 
    jmp         L$16 
L$16:
    push        es 
    push        ds 
    push        si 
    push        ax 
    push        bp 
    mov         bp,sp 
    mov         ax,word ptr 0aH[bp] 
    pop         bp 
    mov         ds,ax 
    lds         si,dword ptr 0cH[bp] 
    pop         ax 
    mov         word ptr [si],ax 
    mov         word ptr 2[si],bx 
    mov         word ptr 4[si],cx 
    mov         word ptr 6[si],dx 
    mov         word ptr 0aH[si],di 
    pop         ax 
    mov         word ptr 8[si],ax 
    mov         word ptr 0cH[si],0 
    jae         L$17 
    mov         word ptr 0cH[si],1 
L$17:
    lds         si,dword ptr 10H[bp] 
    pop         ax 
    mov         word ptr 6[si],ax 
    pop         ax 
    mov         word ptr [si],ax 
    pop         ds 
    pop         es 
    pop         ds 
    pop         di 
    pop         si 
    pop         dx 
    pop         cx 
    pop         bx 
    pop         ax 
    pop         bp 
    retf        
_TEXT		ENDS
		END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?