;; common.protmode.print.asm %include "common.asm" _print_string_pm_vga: pusha mov edi, VGA_BUFFER mov ah, WB_COLOR xor ecx, ecx xor edx, edx .print_loop: lodsb test al, al jz .done push eax mov eax, edx imul eax, eax, 160 lea edi, [VGA_BUFFER + eax] lea edi, [edi + ecx * 2] pop eax ;; Advance cursor inc cl cmp cl, 80 jb .print_loop xor cl, cl inc dl jmp .print_loop .done: popa ret