shadeos/learning/old_src/32bit_print.asm

26 lines
506 B
NASM

[bits 32]
; defining constants
VIDEO_MEMORY equ 0xb8000
WHITE_ON_BLACK equ 0x0f ; color byte
print_string_pm:
pusha
mov edx, VIDEO_MEMORY
print_string_pm_loop:
mov al, [ebx] ; [ebx] is address of char
mov ah, WHITE_ON_BLACK
cmp al, 0 ; is end of string?
je print_string_pm_done
mov [edx], ax ; store char + attribute in video memory
add ebx, 1 ; next char
add edx, 2 ; next video memory position
jmp print_string_pm_loop
print_string_pm_done:
popa
ret