📄 run.asm
字号:
OUTPUT MACRO P1,P2 ;对于字符串的输入和输出
LEA DX,P1
MOV AH,P2
INT 21H
ENDM
INPUT MACRO P3 ;对于字符的输入输出
MOV AH,P3
INT 21H
ENDM
DATA SEGMENT
BUF8 DB 0AH,0DH,'**********Welcome you!**********$'
BUF1 DB 0AH,0DH,'*** 1.Add ***$'
BUF2 DB 0AH,0DH,'*** 2.Subtract ***$'
BUF3 DB 0AH,0DH,'*** 3.Multiply ***$'
BUF4 DB 0AH,0DH,'*** 4.Divide ***$'
BUF5 DB 0AH,0DH,'*** 0.Quit ***$'
BUF6 DB 0AH,0DH,'Please chose your operation:$'
BUF7 DB 0AH,0DH,'Please input your number:$'
BUF10 DB 0AH,0DH,'The result is:$'
BUF9 DB 0AH,0DH,'Your input is wrong,please input again:$'
NUM DB 6,?,6 DUP(?),'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
;*******进行菜单设计*****
OUTPUT BUF8,9
TIP1: OUTPUT BUF1,9
OUTPUT BUF2,9
OUTPUT BUF3,9
OUTPUT BUF4,9
OUTPUT BUF5,9
OUTPUT BUF6,9
TIP2: INPUT 1 ;输入运算选择(0-4)
CMP AL,31H
JZ NEXT1 ;输入1则进行加法运算
CMP AL,32H
JZ NEXT2 ;输入2则进行减法运算
CMP AL,33H
JZ NEXT3 ;输入3则进行乘法运算
CMP AL,34H
JZ NEXT4 ;输入4则进行除法运算
CMP AL,30H
JZ EXIT ;输入0则退出
OUTPUT BUF9,9
JMP TIP2
;******进行加法运算****
NEXT1:CALL DOWN1
MOV BH,0
ADD BL,AL
ADC BH,0
CALL DOWN2
JMP TIP1
;******进行减法运算****
NEXT2:CALL DOWN1
MOV BH,0
SUB BL,AL
SBB BH,0
CALL DOWN2
JMP TIP1
;******进行乘法运算****
NEXT3:CALL DOWN1
MUL BL
MOV BX,AX
CALL DOWN2
JMP TIP1
;******进行除法运算****
NEXT4:CALL DOWN1
MOV DL,AL
MOV AL,BL
MOV AH,0
DIV DL
MOV BX,0
MOV BL,AL
CALL DOWN2
JMP TIP1
EXIT: MOV AH,4CH
INT 21H
;**输出保存在BX里的运算结果到屏幕***
DOWN2 PROC NEAR
OUTPUT BUF10,9
MOV AX,BX
MOV CL,12
SHR AX,CL
MOV DL,AL
ADD DL,30H
CMP DL,39H
JNA N1
ADD DL,7H
N1: INPUT 2
MOV AX,BX
MOV CL,8
AND AX,0F00H
SHR AX,CL
MOV DL,AL
ADD DL,30H
CMP DL,39H
JNA N2
ADD DL,7H
N2: INPUT 2
MOV AX,BX
MOV CL,4
AND AX,00F0H
SHR AX,CL
MOV DL,AL
ADD DL,30H
CMP DL,39H
JNA N3
ADD DL,7H
N3: INPUT 2
MOV AX,BX
AND AX,000FH
MOV DL,AL
ADD DL,30H
CMP DL,39H
JNA N4
ADD DL,7H
N4: INPUT 2
RET
;把要进行运算的两个数进行处理分别存在BL,AL中
DOWN2 ENDP
DOWN1 PROC NEAR
OUTPUT BUF7,9
OUTPUT NUM,10
LEA SI,NUM+2
MOV CX,5
LIP1: MOV AL,[SI]
SUB AL,30H
CMP AL,9H
JNA LIP2
SUB AL,7
LIP2: MOV [SI],AL
INC SI
LOOP LIP1
MOV CL,4
MOV BL,NUM+2
SHL BL,CL
OR BL,[NUM+3]
MOV AL,NUM+5
SHL AL,CL
OR AL,[NUM+6]
RET
DOWN1 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -