⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mon88.asm

📁 cpu86是用VHDL描述的8088IP核
💻 ASM
📖 第 1 页 / 共 5 页
字号:
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 + -