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