Por mi, digo que eso no funciona, ya que tu mov cx,0 y add cx,al no tiene sentido
Es mejor asi:
0100 30 E4 XOR AH,AH
0102 CD 16 INT 16
0104 30 E4 XOR AH,AH
0106 2C 30 SUB AL,30
0108 01 C1 ADD CX,AX
Si se le escribe un numero entonces lo tranforma bien, y el numero se suma a cx
Lo he traducido a lenguaje maquina yo mismo.