title: Draw on screen using mouse in assembly (emu8086)
body: <p>The code below lets you draw on screen with mouse, and works perfect. My problem is why does <code>CX</code> need to be divided by 2? Why is it doubled in the first place?</p>
  
  <pre><code>code segment
  main proc far
  
  mov al, 12h
  mov ah, 0   ; set graphics video mode.
  int 10h   
  
  mov ax, 1   ;shows mouse cursor
  int 33h
  
  Next:
  mov ax, 3   ;get cursor positon in cx,dx
  int 33h
  
  call putpix ;call procedure 
  jmp Next
  
  mov ah,4ch
  int 21h
  main endp
  
  ;procedure to print
  putpix proc   
  mov al, 7   ;color of pixel  
  mov ah, 0ch    
  shr cx,1    ; cx will get double so we divide it by two
  int 10h     ; set pixel.
  ret
  putpix endp
  code ends 
  </code></pre>