[bits 32] ; VGA base address: 0xb8000 ; Charpos = 0xb8000 + 2(row*80 + col) vga_color_buf: db 0x0f ; Buffer to be changed so that we can choose colors! vga_print: pusha mov edx, VIDEO_MEM vga_print_loop: mov al, [ebx] ; Pointer to char mov ah, [vga_color_buf] ; Color code cmp al, ASCII_END ; Check if end of string je vga_print_return ; If end then return mov [edx], ax ; Move charpos inc ebx ; Increment to next add edx, 2 jmp vga_print_loop ; Loop back until end of string vga_print_return: popa ret