title: How can i set pixels of whole screen with x86 assembly without any BIOS interrupts?
body: <pre><code> .MODEL SMALL
   .CODE
  start:
   mov ax,012h ;VGA mode
   int 10h ;640 x 480 16 colors.
   mov ax,0A000h
   mov es,ax ;ES points to the video memory.
   mov dx,03C4h ;dx = indexregister
   mov ax,0F02h ;INDEX = MASK MAP, 
   out dx,ax ;write all the bitplanes.
   mov di,0 ;DI pointer in the video memory.
   mov cx,38400 ;(640 * 480)/8 = 38400
   mov ax,0FFh ;write to every pixel.
   rep stosb ;fill the screen
   mov ah,4ch ;go back 
   int 21h ; to DOS.
   END start
  </code></pre>
  
  <p>The code above only set pixels of Dos screen, I want to change every pixel on my monitor, is it possible with x86 assembly in user mode?</p>