26 lines
506 B
NASM
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
|