먼저 부트로더는 다음과 같이 작성하고,
;boot1.asm
[org 0]
[bits 16]
jmp 0x07C0:start
start:
mov ax, cs
mov ds, ax
mov ax, 0xB800
mov es, ax
mov di, 0
mov ax, word [msgBack]
mov cx, 0x7D0 ; 글자의 갯수인 0x7D0을 cx에 지정해 카운터로 사용한다.
draw:
mov word [es:di], ax ; ax에 있는 배경색을 비디오 램 영역인 0xB8000에 복사
add di, 2 ; di를 2씩 증가 (글자 하나당 2byte이기 때문)
dec cx ; 한 번 쓸때마다 cx를 dec, 즉 1씩 감소시킨다.
jnz draw ; Zero Flag가 0인동안 루프를 반복한다(jnz는 Jmp Not Zero의 약자)
read: