📄 noname1.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 + -