2010-05-19 3 views
1

NASM에서 컴파일 할 간단한 커널을 작성하는 표준 방법은 무엇입니까? NASM을 사용하여 어셈블리에 OS 커널 작성

얻을에 명확 : 나는 다음과 같은 방법으로 모든와 코드 블록을 정의 할 수 있었다 : 나는 그것을 할 수있는 표준적인 방법이 무엇인지 알 필요가, 그리고 무엇

[segment code] 
[segment .code] 
segment code 
segment .code 

[section code] 
[section .code] 
section code 
section .code 

위에서 언급 한 바와 같이 그들 사이의 차이 ...

감사

+1

NASM에는 [우수한 문서] (http://www.nasm.us/doc/nasmdoc6.html#section-6.3)이 있습니다. 그 중 어떤 부분을 이해하는 데 어려움이 있습니까? 보다 구체적인 질문을 통해 여기에 답을 얻을 가능성이 더 큽니다. –

+0

* "kernel"*을 실제로 의미합니까? 아니면 단순한 * 프로그램 *을 의미합니까? –

+0

부팅 할 커널 (현재 운영 체제 대신 .. – Betamoo

답변

2

귀하의 질문은 NASM 문서의 대답이다.

사실은 섹션이 코드를로드 할 때 verymuch를 의미하지는 않습니다. 로드 할 커널, 완전한 부트 로더가 필요하며 부트 로더에는 GDTr을로드하고 A20을 활성화하고 보호 모드로 들어가고 _kmain으로 점프하기 위해 512b가 있습니다. 더 많은 예제 및 정보는 OSDev.org를 확인하십시오.

관련 문제