y0u_bat

[64비트멀티코어] 부트로더 제작 (2) 본문

OS

[64비트멀티코어] 부트로더 제작 (2)

유뱃 2016. 4. 12. 00:38


부트로더의 시작주소 : 0x7c00


부트로더의 글씨를 띄울려면 비디오 메모리에 써야됩니다.


0xB8000이 텍스트 출력용 메모리 입니다.




소스 


[ORG 0x7c00]

[BITS 16]


SECTION .text


mov ax, 0xB800

mov es, ax


mov ah, 0x09

mov al, 'O'

mov [es:0x00], ax

mov al, 'S'

mov [es:0x02], ax



0xB8000에서 한글자는 2바이트로 이루어져 있습니다.


2바이트에서 앞에 첫1바이트는 글자, 2번째 바이트는 글자속성(배경,글 색깔 등)



결과







화면이 더럽죠.


우리가 지정한 글씨만 나오도록 나머지 글씨를 0x00로 지워 줍시다.


부트로더에서 가로 80 세로 25 이다 그런데 속성까지해서  80 * 25 * 2 == 4000 byte


0xb8000에서부터 4000바이트 만큼 모두 0x00로 바꿔 주면 깨끗해진다.










문자열 출력





Comments