Advertisement
Rezaur_Rahman

Decimal Number I/O

Dec 10th, 2019
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INCLUDE "EMU8086.INC"
  2. .MODEL SMALL
  3. .STACK 100H
  4. .DATA
  5.  
  6.     TEMP DW ?
  7.     NUM DW 0
  8.     SUM DW 0    
  9.    
  10. .CODE
  11.     MAIN PROC
  12.        
  13.         MOV AX,@DATA
  14.         MOV DS,AX
  15.        
  16.         CALL DECIMAL_INPUT
  17.        
  18.         PRINTN
  19.        
  20.         CALL DECIMAL_OUTPUT
  21.        
  22.         EXIT:
  23.         MOV AH,4CH
  24.         INT 21H
  25.        
  26.     MAIN ENDP
  27.    
  28.     ;FUNCTION FOR DECIMAL NUMBER INPUT
  29.    
  30.     DECIMAL_INPUT PROC
  31.        
  32.         LOOP1:
  33.         MOV AH,1
  34.         INT 21H
  35.         CMP AL,13
  36.         JE LOOP1_END
  37.         SUB AL,48
  38.         XOR AH,AH
  39.         MOV TEMP,AX
  40.         MOV AX,SUM
  41.         MOV CX,10
  42.         MUL CX
  43.         ADD AX,TEMP
  44.         MOV SUM,AX
  45.         JMP LOOP1
  46.        
  47.         LOOP1_END:
  48.         MOV AX,SUM
  49.         MOV NUM,AX
  50.         RET
  51.        
  52.     DECIMAL_INPUT ENDP
  53.    
  54.     ;FUCTION FOR DECIMAL NUMBER OUTPUT
  55.    
  56.     DECIMAL_OUTPUT PROC
  57.        
  58.         MOV BP,SP
  59.        
  60.         LOOP2:
  61.         XOR AX,AX
  62.         XOR DX,DX
  63.         CMP NUM,0
  64.         JE LOOP3
  65.         MOV AX,NUM
  66.         MOV BX,10
  67.         DIV BX
  68.         MOV NUM,AX
  69.         ADD DX,48
  70.         PUSH DX
  71.         JMP LOOP2
  72.        
  73.         LOOP3:
  74.         POP DX
  75.         MOV AH,2
  76.         INT 21H
  77.         CMP SP,BP
  78.         JNE LOOP3
  79.        
  80.         RET
  81.        
  82.     DECIMAL_OUTPUT ENDP    
  83. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement