title: Assembly language procedure to take 2-digit input from the user
body: <p>I have a procedure which takes a 2-digit input from the user but I don't understand  why a jump is made to JUMP01 if AL &lt;= 9 and otherwise 7 is subtracted</p>
  
  <pre><code>INPUT PROC NEAR
  
      MOV AH,01
      INT 21H
      SUB AL,30H
      CMP AL,09
      JBE JUMP01
      SUB AL,07H
  JUMP01:
  
      MOV DL,AL
      SHL DX,4
      MOV AH,01
      INT 21H
      SUB AL,30H
      CMP AL,09
      JBE JUMP02
      SUB AL,07H
  JUMP02: 
  
      ADD DL,AL
      RET
  
  INPUT ENDP
  </code></pre>