📄 mon88.asm
字号:
L$67:
test dl,dl
jne L$69
cmp dh,cl
jne L$68
mov cx,di
mov bx,word ptr 8[bp]
lea dx,-2[bp]
mov ax,si
call near ptr get_byte_
mov cx,di
mov bx,word ptr 8[bp]
lea dx,-1[bp]
mov ax,si
call near ptr get_byte_
push word ptr -2[bp]
mov ax,offset L$467
jmp L$66
L$68:
lea ax,-22H[bp]
push ax
jmp L$65
L$69:
cmp dl,1
jne L$72
mov cx,di
mov bx,word ptr 8[bp]
lea dx,-2[bp]
L$70:
mov ax,si
call near ptr get_byte_
push word ptr -2[bp]
lea ax,-22H[bp]
push ax
mov ax,offset L$468
push ax
push word ptr 0cH[bp]
call near ptr esprintf_
add sp,8
L$71:
xor ax,ax
jmp L$74
L$72:
cmp dl,2
jne L$73
mov cx,di
mov bx,word ptr 8[bp]
lea dx,-2[bp]
mov ax,si
call near ptr get_byte_
mov cx,di
mov bx,word ptr 8[bp]
lea dx,-1[bp]
jmp L$70
L$73:
mov ax,0ffffH
L$74:
mov sp,bp
pop bp
pop di
pop si
ret 6
printchar_:
push bx
push si
mov bx,ax
mov ax,dx
test bx,bx
je L$75
mov si,word ptr [bx]
mov byte ptr [si],dl
inc word ptr [bx]
pop si
pop bx
ret
L$75:
call TXCHAR
pop si
pop bx
ret
prints_:
push si
push di
push bp
mov bp,sp
push ax
push ax
mov si,dx
mov dx,cx
xor cx,cx
mov word ptr -2[bp],20H
test bx,bx
jle L$80
xor ax,ax
mov di,si
L$76:
cmp byte ptr [di],0
je L$77
inc ax
inc di
jmp L$76
L$77:
cmp ax,bx
jl L$78
xor bx,bx
jmp L$79
L$78:
sub bx,ax
L$79:
test dl,2
je L$80
mov word ptr -2[bp],30H
L$80:
test dl,1
jne L$82
L$81:
test bx,bx
jle L$82
mov dx,word ptr -2[bp]
mov ax,word ptr -4[bp]
call near ptr printchar_
inc cx
dec bx
jmp L$81
L$82:
cmp byte ptr [si],0
je L$83
mov al,byte ptr [si]
xor ah,ah
mov dx,ax
mov ax,word ptr -4[bp]
call near ptr printchar_
inc cx
inc si
jmp L$82
L$83:
test bx,bx
jle L$84
mov dx,word ptr -2[bp]
mov ax,word ptr -4[bp]
call near ptr printchar_
inc cx
dec bx
jmp L$83
L$84:
mov ax,cx
jmp near ptr L$2
printi_:
push si
push di
push bp
mov bp,sp
sub sp,12H
mov di,ax
mov word ptr -6[bp],bx
mov word ptr -4[bp],0
mov word ptr -2[bp],0
mov bx,dx
test dx,dx
jne L$85
mov word ptr -12H[bp],30H
mov cx,word ptr 0aH[bp]
mov bx,word ptr 8[bp]
lea dx,-12H[bp]
call near ptr prints_
jmp near ptr L$74
L$85:
test cx,cx
je L$86
cmp word ptr -6[bp],0aH
jne L$86
test dx,dx
jge L$86
mov word ptr -4[bp],1
neg bx
L$86:
lea si,-7[bp]
mov byte ptr -7[bp],0
L$87:
test bx,bx
je L$89
mov ax,bx
xor dx,dx
div word ptr -6[bp]
cmp dx,0aH
jl L$88
mov ax,word ptr 0cH[bp]
sub ax,3aH
add dx,ax
L$88:
mov al,dl
add al,30H
dec si
mov byte ptr [si],al
mov ax,bx
xor dx,dx
div word ptr -6[bp]
mov bx,ax
jmp L$87
L$89:
cmp word ptr -4[bp],0
je L$91
cmp word ptr 8[bp],0
je L$90
test byte ptr 0aH[bp],2
je L$90
mov dx,2dH
mov ax,di
call near ptr printchar_
inc word ptr -2[bp]
dec word ptr 8[bp]
jmp L$91
L$90:
dec si
mov byte ptr [si],2dH
L$91:
mov cx,word ptr 0aH[bp]
mov bx,word ptr 8[bp]
mov dx,si
mov ax,di
call near ptr prints_
add ax,word ptr -2[bp]
jmp near ptr L$74
print_:
push cx
push si
push di
push bp
mov bp,sp
push ax
push ax
push ax
mov si,dx
mov di,bx
mov word ptr -2[bp],0
L$92:
cmp byte ptr [si],0
je L$96
cmp byte ptr [si],25H
jne L$97
xor cx,cx
xor dx,dx
inc si
cmp byte ptr [si],0
je L$96
cmp byte ptr [si],25H
je L$97
cmp byte ptr [si],2dH
jne L$93
mov cx,1
add si,cx
L$93:
cmp byte ptr [si],30H
jne L$94
or cl,2
inc si
jmp L$93
L$94:
cmp byte ptr [si],30H
jb L$95
cmp byte ptr [si],39H
ja L$95
mov ax,dx
mov dx,0aH
imul dx
mov dx,ax
mov bl,byte ptr [si]
xor bh,bh
sub bx,30H
add dx,bx
inc si
jmp L$94
L$95:
cmp byte ptr [si],73H
jne L$101
add word ptr [di],2
mov bx,word ptr [di]
mov ax,word ptr -2[bx]
mov bx,dx
test ax,ax
je L$98
mov dx,ax
jmp L$99
L$96:
jmp near ptr L$111
L$97:
jmp near ptr L$109
L$98:
mov dx,offset L$469
L$99:
mov ax,word ptr -6[bp]
call near ptr prints_
L$100:
add word ptr -2[bp],ax
jmp near ptr L$110
L$101:
cmp byte ptr [si],64H
jne L$104
mov ax,61H
push ax
push cx
push dx
add word ptr [di],2
mov bx,word ptr [di]
mov dx,word ptr -2[bx]
mov cx,1
L$102:
mov bx,0aH
L$103:
mov ax,word ptr -6[bp]
call near ptr printi_
jmp L$100
L$104:
cmp byte ptr [si],78H
jne L$106
mov ax,61H
L$105:
push ax
push cx
push dx
add word ptr [di],2
mov bx,word ptr [di]
mov dx,word ptr -2[bx]
xor cx,cx
mov bx,10H
jmp L$103
L$106:
cmp byte ptr [si],58H
jne L$107
mov ax,41H
jmp L$105
L$107:
cmp byte ptr [si],75H
jne L$108
mov ax,61H
push ax
push cx
push dx
add word ptr [di],2
mov bx,word ptr [di]
mov dx,word ptr -2[bx]
xor cx,cx
jmp L$102
L$108:
cmp byte ptr [si],63H
jne L$110
add word ptr [di],2
mov bx,word ptr [di]
mov al,byte ptr -2[bx]
mov byte ptr -4[bp],al
mov byte ptr -3[bp],0
mov bx,dx
lea dx,-4[bp]
jmp near ptr L$99
L$109:
mov dl,byte ptr [si]
xor dh,dh
mov ax,word ptr -6[bp]
call near ptr printchar_
inc word ptr -2[bp]
L$110:
inc si
jmp near ptr L$92
L$111:
cmp word ptr -6[bp],0
je L$112
mov bx,word ptr -6[bp]
mov bx,word ptr [bx]
mov byte ptr [bx],0
L$112:
mov word ptr [di],0
mov ax,word ptr -2[bp]
jmp near ptr L$64
esprintf_:
push bx
push dx
push bp
mov bp,sp
push ax
lea ax,0cH[bp]
mov word ptr -2[bp],ax
lea bx,-2[bp]
mov dx,word ptr 0aH[bp]
lea ax,8[bp]
call near ptr print_
mov sp,bp
pop bp
pop dx
pop bx
ret
;----------------------------------------------------------------------
; Display Help Menu
;----------------------------------------------------------------------
DISPHELP: MOV SI,OFFSET HELP_MESS ; OFFSET -> SI
CALL PUTS ; String
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -