Advertisement
5H1MU7

Untitled

Apr 7th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.      
  2.     ; You may customize this and other start-up templates;
  3.     ; The location of this template is c:\emu8086\inc\0_com_template.txt
  4.      
  5.     org 100h
  6.     .model large
  7.     .stack 100h
  8.     .data
  9.      
  10.     m1 db "                          CALCULATOR$"
  11.     M2 DB "CHOOSE AN OPTION TO PERFORM : $"
  12.     R DB "                      YOUR RESULT IS = $"
  13.     ER DB "PLEASE ENTER A VALID OPTION : $"
  14.      
  15.     NUM1 DB "       ENTER THE 1ST NUMBER : $"
  16.     NUM2 DB "       ENTER THE 2ND NUMBER : $"
  17.      
  18.                                    
  19.     OP1 DB "                        1 FOR ADDITION$"
  20.     OP2 DB "                        2 FOR SUBTRACTION$"
  21.     OP3 DB "                        3 FOR MULTIPLICATION$"
  22.     OP4 DB "                        4 FOR DIVISION $"
  23.     RE DB "                      REMAINDER = $"
  24.      
  25.     CONT DB "                       1 FOR CONTINUE $ "
  26.     EXT DB "                       0 FOR EXIT  $"
  27.      
  28.     THANK DB "              THANK YOU$"
  29.      
  30.     PR DB " YOU PRESSED : $"
  31.                                    
  32.     .code
  33.     main proc                  
  34.         MOV AX,@DATA
  35.         MOV DS,AX
  36.        
  37.         LEA DX,M1
  38.         MOV AH,9
  39.         INT 21H
  40.        
  41.        
  42.         CALC1:
  43.        
  44.         CALL NLINE
  45.         CALL NLINE
  46.          
  47.          
  48.          
  49.          CALL OPTION
  50.        
  51.         CALL NLINE
  52.         LEA DX,M2
  53.         MOV AH,9
  54.         INT 21H
  55.        
  56.        
  57.        
  58.         CALC: ;START CALC LEVEL
  59.        
  60.        
  61.                            ;
  62.         MOV AH,1           ;
  63.         INT 21H            ;
  64.         MOV BH,AL          ;
  65.                            ;
  66.                            ;
  67.                            ;
  68.         CMP BH,'1'         ;
  69.         JE ADDITION        ;
  70.                            ;
  71.                            ;
  72.                            ;
  73.         CMP BH,'2'         ;    ;OPTION CHOOSER
  74.         JE SUBTRACTION     ;
  75.                            ;
  76.                            ;
  77.                            ;
  78.         CMP BH,'3'         ;
  79.         JE MULTIPLICATION  ;
  80.                            ;
  81.                            ;
  82.         CMP BH,'4'         ;
  83.         JE DIVISION        ;
  84.                            ;
  85.         CALL NLINE         ;
  86.         CALL NLINE         ;
  87.         LEA DX,ER          ;
  88.         MOV AH,9           ;
  89.         INT 21H            ;
  90.                            ;
  91.         JMP CALC           ;
  92.                            ;
  93.                            ;
  94.        
  95.          
  96.        
  97.                      
  98.                               ;END CALC LEVEL  
  99.                              
  100.                              
  101.        
  102.        
  103.         ADDITION:   ;
  104.                     ;
  105.                     ;
  106.         CALL NLINE  ;
  107.         LEA DX,NUM1 ;
  108.         MOV AH,9    ;
  109.         INT 21H     ;
  110.                     ;
  111.         CALL FUNC   ;
  112.                     ;       ADDITION
  113.                     ;
  114.         CALL NLINE  ;
  115.         LEA DX,R    ;
  116.         MOV AH,9    ;
  117.         INT 21H     ;
  118.                     ;
  119.                     ;
  120.         ADD BL,BH   ;
  121.         MOV AL,BL   ;
  122.         SUB AL, 48  ;
  123.         MOV AH,2    ;
  124.         MOV DL,AL   ;
  125.         INT 21H     ;        ;END ADDITION
  126.                     ;
  127.                     ;
  128.          CALL FUNC2 ;
  129.        
  130.        
  131.        
  132.        
  133.        
  134.        
  135.         SUBTRACTION: ;
  136.                      ;
  137.         CALL NLINE   ;
  138.         CALL NLINE   ;
  139.         LEA DX,NUM1  ;
  140.         MOV AH,9     ;
  141.         INT 21H      ;
  142.                      ;
  143.         CALL FUNC    ;
  144.                      ;
  145.         CALL NLINE   ;          SUBTRACTION
  146.         CALL NLINE   ;
  147.         LEA DX,R     ;
  148.         MOV AH,9     ;
  149.         INT 21H      ;
  150.                      ;
  151.                      ;
  152.         SUB BL,BH    ;
  153.         MOV AL,BL    ;
  154.         ADD AL, 48   ;
  155.         MOV AH,2     ;
  156.         MOV DL,AL    ;
  157.         INT 21H      ;     ;END SUBTRACTION
  158.                      ;
  159.                      ;
  160.         CALL FUNC2   ;
  161.                      ;
  162.                      ;
  163.                      ;
  164.        
  165.         DIVISION:             ;DIVISION
  166.        
  167.        
  168.         MOV AX,0         ;
  169.         MOV BX,0         ;
  170.         MOV CX,0         ;
  171.         MOV DX,0         ;
  172.                          ;
  173.         CALL NLINE       ;
  174.         LEA DX,NUM1      ;
  175.         MOV AH,9         ;
  176.         INT 21H          ;
  177.                          ;
  178.         MOV AH,1         ;
  179.         INT 21H          ;
  180.         SUB AL,48        ;
  181.         MOV CL,AL        ;
  182.                          ;
  183.                          ;
  184.                          ;
  185.                          ;
  186.         CALL NLINE       ;
  187.         LEA DX,NUM2      ;
  188.         MOV AH,9         ;
  189.         INT 21H          ;
  190.                          ;
  191.                          ;
  192.         MOV AH,1         ;
  193.         INT 21H          ;
  194.         SUB AL,48        ;
  195.         MOV BL,AL        ;            ;DIVISION
  196.                          ;
  197.                          ;
  198.         CALL NLINE       ;
  199.         LEA DX,R         ;
  200.         MOV AH,9         ;
  201.         INT 21H          ;
  202.                          ;
  203.                          ;
  204.                          ;
  205.         MOV AX,CX        ;
  206.         DIV BL           ;
  207.         MOV CX,AX        ;
  208.         ADD CL,48        ;
  209.                          ;
  210.                          ;
  211.         MOV AH,2         ;
  212.         MOV DL,CL        ;
  213.         INT 21H          ;
  214.                          ;
  215.                          ;
  216.         ADD CH,48        ;
  217.                          ;
  218.         CMP CH,0         ;
  219.                          ;
  220.         JE REM           ;
  221.                          ;
  222.                          ;
  223.         REM:             ;
  224.          CALL NLINE      ;
  225.          LEA DX,RE       ;
  226.         MOV AH,9         ;
  227.         INT 21H          ;
  228.                          ;
  229.          MOV AH,2        ;
  230.         MOV DL,CH        ;
  231.         INT 21H
  232.        
  233.                                          ;END DIVISION
  234.        
  235.        
  236.        
  237.         CALL FUNC2
  238.      
  239.        
  240.         MULTIPLICATION:       ;multipliation
  241.        
  242.        
  243.         CALL NLINE
  244.                        ;
  245.                        ;
  246.         MOV AX,0       ;
  247.         MOV BX,0       ;
  248.         MOV CX,0       ;
  249.         MOV DX,0       ;
  250.                        ;
  251.                        ;
  252.                        ;
  253.         CALL NLINE     ;
  254.         LEA DX,NUM1    ;
  255.         MOV AH,9       ;
  256.         INT 21H        ;
  257.                        ;
  258.         MOV AH,1       ;
  259.         INT 21H        ;
  260.         SUB AL,48      ;
  261.         MOV CL,AL      ;
  262.         MOV AH,0       ;
  263.                        ;
  264.                        ;
  265.                        ;
  266.         CALL NLINE     ;          ;multipliation
  267.         LEA DX,NUM2    ;
  268.         MOV AH,9       ;
  269.         INT 21H        ;
  270.                        ;
  271.         MOV AH,1       ;
  272.         INT 21H        ;
  273.         SUB AL,48      ;
  274.         MOV BL,AL      ;
  275.         MOV BH,0       ;
  276.                        ;
  277.                        ;
  278.          MOV AX,CX     ;
  279.                        ;
  280.          MUL BX        ;
  281.          MOV CX,AX     ;
  282.          ADD CL,48     ;
  283.                        ;
  284.          CALL NLINE    ;
  285.          LEA DX,R      ;
  286.          MOV AH,9      ;
  287.          INT 21H       ;
  288.                        ;
  289.                        ;
  290.          MOV AH,2      ;
  291.          MOV DL,CL     ;
  292.          INT 21H       ;            ;END MULTIPLICATION
  293.          
  294.        
  295.           CALL FUNC2
  296.        
  297.        
  298.        
  299.         NLINE:
  300.        
  301.         MOV AH,2
  302.         MOV DL,0AH
  303.         INT 21H
  304.         MOV DL,0DH
  305.         INT 21H
  306.         RET
  307.        
  308.        
  309.         FUNC:       ;
  310.                     ;
  311.         MOV AX,0    ;
  312.         MOV BX,0    ;
  313.         MOV CX,0    ;
  314.         MOV DX,0    ;
  315.                     ;
  316.         MOV AH,1    ;        INPUT
  317.         INT 21H     ;
  318.         MOV BL,AL   ;
  319.                     ;
  320.         CALL NLINE  ;
  321.         LEA DX,NUM2 ;
  322.         MOV AH,9    ;
  323.         INT 21H     ;
  324.                     ;
  325.                     ;
  326.         MOV AH,1    ;
  327.         INT 21H     ;
  328.         MOV BH,AL   ;
  329.         RET         ;
  330.        
  331.        
  332.          
  333.          
  334.          
  335.          FUNC2:      ;
  336.                      ;
  337.                      ;
  338.         CALL NLINE   ;
  339.         CALL NLINE   ;
  340.         LEA DX,CONT  ;
  341.         MOV AH,9     ;
  342.         INT 21H      ;
  343.                      ;
  344.         CALL NLINE   ;
  345.         LEA DX,EXT   ;
  346.         MOV AH,9     ;
  347.         INT 21H      ;          CONTINUITY OR  DISCONTINUITY
  348.                      ;
  349.         CALL NLINE   ;
  350.         CALL NLINE   ;
  351.         LEA DX,PR    ;
  352.         MOV AH,9     ;
  353.         INT 21H      ;
  354.                      ;
  355.                      ;
  356.         MOV AH,1     ;
  357.         INT 21H      ;
  358.         MOV BH,AL    ;
  359.                      ;
  360.         CMP BH,'1'   ;
  361.         JE CALC1     ;
  362.                      ;
  363.                      ;
  364.         CMP BH,'0'   ;
  365.         JE EXIT      ;
  366.        
  367.        
  368.        
  369.        
  370.        
  371.        
  372.        
  373.        
  374.        
  375.         OPTION:      ;
  376.         LEA DX,OP1   ;
  377.         MOV AH,9     ;
  378.         INT 21H      ;
  379.         CALL NLINE   ;
  380.         LEA DX,OP2   ;
  381.         MOV AH,9     ;
  382.         INT 21H      ;      MSG
  383.         CALL NLINE   ;
  384.         LEA DX,OP3   ;
  385.         MOV AH,9     ;
  386.         INT 21H      ;
  387.         CALL NLINE   ;
  388.         LEA DX,OP4   ;
  389.         MOV AH,9     ;
  390.         INT 21H      ;
  391.         CALL NLINE   ;
  392.                      ;
  393.                   RET;
  394.                  
  395.                  
  396.      
  397.          
  398.        
  399.         EXIT:
  400.        
  401.         CALL NLINE
  402.         CALL NLINE
  403.         CALL NLINE
  404.        
  405.         LEA DX,THANK
  406.         MOV AH,9
  407.         INT 21H
  408.         MOV AH,2
  409.         MOV DL,01H
  410.         INT 21H
  411.        
  412.         MOV AX,4CH
  413.         INT 21H
  414.         MAIN ENDP
  415.     END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement