title: Printing out decimal value in 8086 Assembly Language
body: <p>I am currently working on a project that requires me to prompt a user for three inputs (length, width, &amp; height) and then calculate the volume (l<em>w</em>h). I am having problems printing out the result after the calculations are complete. Is there a way to print out a decimal value?</p>
  
  <pre><code>.MODEL  SMALL
   .STACK 100h  
  
  .DATA
  l  DB ?
  w  DB ?
  h  DB ?
  v  DB ?
  M1 DB 10,13, "Please enter the length: $"
  M2 DB 10,13, "Please enter the width : $"
  M3 DB 10,13, "Please enter the height: $"
  M4 DB 10,13, "The volume is:$"          
  
     .CODE
      Main    PROC
      mov ax, @data       ; getting data segment address
      mov ds, ax          ; initializing the data segment  
  
      mov dx, offset M1   ; prompting user for a value
      mov ah, 09h     ; writing string to STDOUT
      int 21h             ; BIOS routines
      mov ah, 01h     ; reading in from STDIN, input stored in al
      int 21h
      mov bl, al
      sub ax,ax           ; clearing ax register for the next input
      sub bl, 30h
      mov l, bl
      sub bx,bx
  
      mov dx, offset M2
      mov ah, 09h
      int 21h 
      mov ah, 01h
      int 21h
      mov bl, al
      sub ax,ax
      sub bl, 30h
      mov w, bl
      mov al, l   
      mul bl 
      mov v, al
      sub ax, ax
      sub bx,bx
  
      mov dx, offset M3
      mov ah, 09h
      int 21h 
      mov ah, 01h
      int 21h
      sub al, 30h 
      mov h,  al 
      sub bx, bx
      mov bl, v
      mul bx
      mov v, al
      sub ax, ax
      sub bx,bx  
  
      mov dx, offset M4 
      mov ah, 09h
      int 21h 
      sub dx, dx
      mov dx, offset v
      mov ah, 09h
      int 21h
      mov ax, 400ch           ; returning control to OS
      int 21h     
      Main ENDP
      END Main
  </code></pre>