title: Trying to write assembly code add three numbers
body: <p>I'm trying to write an assembly code that will ask a user to enter 3 numbers and add them but it seems that there is something wrong with my following code, first of all, it shows me the result in ASCII format and it not giving me the write addition results.</p>
  <pre><code>.MODEL SMALL 
  .STACK 100H
  .DATA
      PROMPT_1 DB 'Enter the First number : $' 
      PROMPT_2 DB 'Enter the Second number : $' 
      PROMPT_3 DB 'Enter the Third number : $' 
      PROMPT_4 DB 'The Sum of three numbers is = $' 
      NUM1 DB ?
      NUM2 DB ?
      NUM3 DB ?
      Sum  DB ?
  .CODE
  
    MAIN PROC 
      MOV AX, @DATA 
      MOV DS, AX ; initialize DS
  ; display massage and enter the first number and save it in num1 variable
      LEA DX, PROMPT_1 ; load and display the PROMPT_1 
      MOV AH, 9
      INT 21H
      MOV AH, 1 ; read a character
      INT 21H
      SUB AL, 30H ; save First digit in VALUE_1 in ASCII code 
      MOV NUM1,AL
      MOV AH, 2 ; carriage return
      MOV DL, 0DH
      INT 21H
      MOV DL, 0AH ; line feed
      INT 21H
  ; display massage and enter the Second number and save it in num2 variable
      LEA DX, PROMPT_2 ; load and display the PROMPT_2 
      MOV AH, 9
      INT 21H
      MOV AH, 1 ; read a character
      INT 21H
      SUB AL, 30H ; save First digit in NUM1 in ASCII code 
      MOV NUM2,AL
      MOV AH, 2 ; carriage return
      MOV DL, 0DH
      INT 21H
      MOV DL, 0AH ; line feed 
      INT 21H
  ; display massage and enter the third number and save it in num3 variable
      LEA DX, PROMPT_3 ; load and display the PROMPT_3
      MOV AH, 9
      INT 21H
      MOV AH, 1 ; read a character
      INT 21H
      SUB AL, 30H ; save First digit in NUM3 in ASCII code 
      MOV NUM3,AL
      MOV AH, 2 ; carriage return
      MOV DL, 0DH
      INT 21H
      MOV DL, 0AH ; line feed
      INT 21H
  ; Print massage in the prompt_4 on the screen 
      LEA DX, PROMPT_4 ; load and display thePROMPT_4 
      MOV AH, 9 
      INT 21H
  ; Calculate the sum of NUM1+NUM2+NUM3 
      MOV AL, NUM1
      ADD AL, NUM2
      ADD AL, NUM3
      
      MOV AH,0
  
      Add AL,30H ; convert ASCII to DECIMAL code 
      MOV AH,2 ; display the character
      MOV DL, AL
      INT 21H
      
      MOV AH,4CH
      INT 21H
    MAIN ENDP 
    END MAIN
  </code></pre>
  <p>if I run this code the results will be
  The Sum of three numbers is = &gt;</p>
  <p>( if I enter 3 4 5 for example )</p>