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

📄 noname1.asm

📁 加减乘除四则运算
💻 ASM
字号:
DATA        SEGMENT
X        DW  ?
SYMBOL        DB  ?
Y        DW  ?
Z        DW  ?
DISPINFO1             DB 'NOT YUNSUAN CHAR!','$'
DISPINFO2      DB 'YUSHU IS:$'
CUAN        DW  10000,1000,100,10,1,0.1 ,0.01,0.001
DATA   ENDS
CODE   SEGMENT
    ASSUME DS:DATA,CS:CODE
START:    MOV   AX,DATA
    MOV   DS,AX
BINGIN:    CALL  INPUT
    MOV   X,BX
    MOV   SYMBOL,DL
    CALL  INPUT
    MOV   Y,BX

    CMP   SYMBOL,'+'
    JE    JIA
    CMP   SYMBOL,'-'
    JE    JIAN
    CMP   SYMBOL,'*'
    JE    CHENG
    CMP   SYMBOL,'/'
    JE    CHU
    LEA   DX,DISPINFO1
    MOV   AH,09H
    INT   21H

    MOV   AH,4CH
    INT   21H
JIA:    MOV   AX,X    
    ADD   AX,Y
    JMP   EXIT1
JIAN:    MOV   AX,X
    SUB   AX,Y
    JMP   EXIT1
CHENG:    MOV   AX,X
    MUL   Y
    JMP   EXIT1
CHU:    MOV   AX,X
    CWD
    DIV   Y
    PUSH  DX
    MOV   DX,AX
    CALL  BINTODIN
    LEA   DX,DISPINFO2
    MOV   AH,9
    INT   21H
    POP   DX
    CALL  BINTODIN
    JMP   LOOP0
EXIT1:    MOV   Z,AX
    MOV   DX,AX
    CALL  BINTODIN

LOOP0:    MOV   DL,0AH
    MOV   AH,02H
    INT   21H
    MOV   DL,0DH
    INT   21H

    MOV   AH,01H
    INT   21H
    CMP   AL,0DH
    JNE   BINGIN

    MOV   AH,4CH
    INT   21H

INPUT    PROC  NEAR
    PUSH  AX
    MOV   AX,0
LOOP1:    CALL  INP
    CMP   DL,30H
    JB    EXIT2
    CMP   DL,39H
    JA    EXIT2
    SUB   DL,30H
    MOV   BX,0
    MOV   BL,DL
    MOV   CL,10
    MUL   CL
    ADD   AX,BX
    JMP   LOOP1
EXIT2:    MOV   BX,AX
    POP   AX
    RET
INPUT    ENDP

INP    PROC  NEAR
    PUSH  AX
    MOV   AH,01H
    INT   21H
    MOV   DX,0
    MOV   DL,AL
    POP   AX
    RET
INP    ENDP

BINTODIN PROC NEAR
     PUSH  CX
     PUSH  BX
     MOV   CX,5
     MOV   BX,0
     LEA   SI,CUAN
LOOP3:     SUB   DX,[SI]
     JB    LOOP4
     INC   BL
     JMP   LOOP3
LOOP4:     ADD   DX,[SI]
     CMP   BL,0
     JE    LOOP7
LOOP5:     PUSH  DX
     MOV   DL,BL
     OR    DL,30H
     MOV   AH,2
     INT   21H
     POP   DX
     MOV   BH,1
     JMP   LOOP8
LOOP7:     CMP   BH,1
     JE    LOOP5
LOOP8:     ADD   SI,2
     MOV   BL,0
     LOOP  LOOP3
     CMP   BH,0
     JNE   LOOP9
     MOV   DL,'0'
     MOV   AH,2
     INT   21H
LOOP9:     POP   BX
     POP   CX
     RET
BINTODIN ENDP

CODE   ENDS
       END   START

⌨️ 快捷键说明

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