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

📄 run.asm

📁 汇编语言写的程序
💻 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 + -