Code: Select all
cli
mov ax, 0x07c0
mov ds, ax ;; for some reason, this breaks printing the message
mov es, ax
mov fs, ax
mov gs, ax
mov ax, 0x0000
mov ss, ax
mov sp, 0xFFFF
sti
Code: Select all
;; Method: print
;;--------------------------------------
;; ds:si => string to print
;;--------------------------------------
;; Prints a null-terminated string using BIOS interrupt 0x10.
print:
lodsb
or al, al
jz print_end
mov ah, 0x0e
int 0x10
jmp print
print_end:
ret
Code: Select all
mov si, loadmsg
call print
Code: Select all
lea si, [loadmsg - 0x7c00]
call print
Code: Select all
org 0x7c00