I am trying to write the letter 'D' in blue on a white background by moving it to the video buffer. What is wrong with this code?
INCLUDE Irvine16.inc .code main PROC mov ax,@data mov ds,ax mov si, 0b800h mov word ptr [si], 44h mov word ptr [si+2] 0701h mov ah, 08h int 21h exit main ENDP
Made the changes to above. It now assembles, but displays nothing.
Sample example:
name "hello-world" org 100h ; set video mode mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3) int 10h ; do it! ; cancel blinking and enable all 16 colors: mov ax, 1003h mov bx, 0 int 10h ; set segment register: mov ax, 0b800h mov ds, ax ; print "hello world" ; first byte is ascii code, second byte is color code. mov [02h], 'h' mov [04h], 'e' mov [06h], 'l' mov [08h], 'l' mov [0ah], 'o' mov [0ch], ',' mov [0eh], 'w' mov [10h], 'o' mov [12h], 'r' mov [14h], 'l' mov [16h], 'd' mov [18h], '!' ; color all characters: mov cx, 12 ; number of characters. mov di, 03h ; start from byte after 'h' c: mov [di], 11101100b ; light red(1100) on yellow(1110) add di, 2 ; skip over next ascii code in vga memory. loop c ; wait for any key press: mov ah, 0 int 16h ret
Hope this sample helps you