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

📄 计算器.txt

📁 用汇编编的计算器小程序!请同志们多看看
💻 TXT
字号:
DATA SEGMENT
 
B1 DB 0DH,0AH,'           @@@@@@@@@@@@@@ Simple calculator @@@@@@@@@@@@@@@ $'  
B2 DB 0DH,0AH,'           @    INPUT THE FIRST NUMBER: $'       
B3 DB 0DH,0AH,'           @    INPUT THE SECOND NUMBER:  $'      
B4 DB 0DH,0AH,'           @    INPUT THE OPERATOR(+,-,*,/):   $'    
B5 DB 0DH,0AH,'           @    THE RESULT IS:   $'                      
B6 DB 0DH,0AH,'           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ $'
B7 DB 0DH,0AH,'           CONTINUE? please INPUT THE  KEY (O)!        $'
B8 DB 0AH,0DH,'           @  THE REMAINDER IS :$'
A DW 0
B DW 0
C11 DW 0
C12 DB 0
B11 DW 10
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
      MOV DS,AX
    S:MOV BX,0
      MOV DI,0
      MOV DX,0
      LEA DX,B1
      MOV AH,9
      INT 21H  
      LEA DX,B2                       
      MOV AH,9
      INT 21H                          ;输出提示信息
  DAT_1:MOV AX,0
      MOV AH,1
      INT 21H                          ;输入第一个操作数
     CMP AL,0DH
      JE DAT_2                            
     AND AL,0FH                        ;把数字字符转化为数字
      MOV AH,0
      ADD DI,AX
      MOV AX,DI
      MUL B11
      MOV DI,AX
      JMP DAT_1
   DAT_2:MOV AX,0    
      MOV AX,DI
      DIV B11
      MOV A,AX
      MOV DI,0
      MOV AX,0
      LEA DX,B3                          
      MOV AH,9
      INT 21H
   DAT_3:MOV AH,1                          
      INT 21H                             ;输入第二个操作数
      CMP AL,0DH
      JE DAT_4
      AND AL,0FH
      MOV AH,0
      ADD DI,AX
      MOV AX,DI
      MUL B11
      MOV DI,AX
      JMP DAT_3                           ;将数字字符转化为数字
   DAT_4:MOV AX,0
      MOV AX,DI
      DIV B11
      MOV B,AX
      MOV DI,0
      MOV AX,0                      
      LEA DX,B4
      MOV AH,9
      INT 21H
      MOV AH,1                         ;输入操作符
      INT 21H
      MOV C12,AL
      CMP AL,'+'
      JE  ADD_1
      CMP AL,'-'
      JE  SBB_1
      CMP AL,'*'
      JE  MUL_1                          
      CMP AL,'/'
      JE DIV_1
ADD_1:MOV AX,0      ;加法运算
      MOV AX,A
      ADD AX,B
      MOV SI,AX
      JMP R                         
 SBB_1:MOV AX,0     ;减法运算
      MOV AX,A
      SBB AX,B
      MOV SI,AX
      JMP R                           
 MUL_1:MOV AX,0     ;乘法运算
      MOV AX,A
      MUL B
      MOV SI,AX
      JMP R                           
 DIV_1:MOV AX,0     ;除法运算
      MOV DX,0
      MOV AX,A
      DIV B
      MOV SI,AX
      MOV C11,DX
      JMP R                           
   R: LEA DX,B5
      MOV AH,9
      INT 21H
      MOV CX,SP
      MOV AX,SI                      
  pp1:MOV DX,0
      MOV BX,10
      DIV BX
      PUSH DX                           ;将16进制数转化为10进制数
      CMP AX,0
      JNZ pp1
pp2:  CMP SP,CX
      JE EXIT1
      POP DX
      ADD DL,30H
      MOV AH,2
      INT 21H
      JMP pp2                             ;输出结果
EXIT1:CMP C12,'/'
      JNE LOPAENDS
      LEA DX,B8
      MOV AH,9
      INT 21H
      MOV AX,C11
pp3:   MOV DX,0
      MOV BX,10
      DIV BX
      PUSH DX                           ;将16进制数转化为10进制数
      CMP AX,0
      JNZ pp3
 pp4:  CMP SP,CX
      JE LOPAENDS
      POP DX
      ADD DL,30H
      MOV AH,2
      INT 21H
      JMP pp4
LOPAENDS: LEA DX,B6
      MOV AH,9
      INT 21H
      LEA DX,B7
      MOV AH,9
      INT 21H
      MOV AH,1
      INT 21H
      CMP AL,'o'
      JNE EXIT
      JMP S
EXIT: MOV AH,4CH
      INT 21H
CODE ENDS
     END START

⌨️ 快捷键说明

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