title: Multiplication error not getting proper result?
body: <p><strong>What am I trying to do?</strong></p>
  
  <p>I am taking two integers from the user and trying to multiple them using <code>mul</code> instruction.</p>
  
  <p><strong>What is the problem?</strong></p>
  
  <p>Each time I try to multiple the 2 integers and try to display the result I get alphabet <strong>T</strong> as output.</p>
  
  <pre><code>data segment 
  
      msg1 db "Enter first number:$" 
      msg2 db 10, 13,"Enter second number:$" 
      msg3 db 10, 13,"The product is:$"
      n1 db ? 
      n2 db ?
      pkey db "press any key...$" 
  
  ends
  
  stack segment
  
      dw 128 dup(0) 
  
  ends
  
  code segment 
  start: ; set segment registers: mov ax, data mov ds, ax mov es, ax
  
  ; add your code here
  
  mov ax, @data 
  mov ds, ax
  
  mov dx, offset msg1 
  mov ah,09h 
  int 21h
  
  mov ah, 01h 
  int 21h
  
  sub al, 48 
  mov n1, al
  
  mov dx, offset msg2 
  mov ah, 09h 
  int 21h
  
  mov ah, 01h 
  int 21h
  
  sub al, 48 
  mov n2, al
  
  mul n1
  
  mov bl, al
  
  mov dx, offset msg3 
  mov ah, 09h 
  int 21h  
  
  add bl, 48 
  mov dl, bl 
  mov ah, 02h 
  int 21h
  
  mov ah, 4ch 
  int 21h
  
  lea dx, pkey 
  mov ah, 9 
  int 21h ; output string at ds:dx
  
  ; wait for any key....
  mov ah, 1 
  int 21h
  
  mov ax, 4c00h ; exit to operating system. int 21h
  ends
  
  end start ; set entry point and stop the assembler.
  </code></pre>