2011-06-12 6 views
4

우선, 제목을 알아 내는데 어려움을 겪었습니다. 약간 모호하지만 오 잘합니다.C++ 파일 시스템이없는 코드를 실행하십시오

좋아요, 그래서 나는 혼합 된 C++ & asm 부트 로더 프로그램을 가지고 있습니다. 내 mbr에 복사하고 그것을 실행할 수 있습니다. 내가 가지고있는 유일한 문제는 mbr이 매우 작다는 사실입니다. 나는 그것의 목적이 드라이브의 어딘가에 쓰여진 외부 코드를 호출하는 것이라고 가정하고있다. 내 문제는 액세스하는 방법을 모르겠다는 것입니다. 내 말은 데이터를 거기에 넣을 수 있다는 것입니다. 실제로는 드라이브가 파일 시스템이 아닌 임의의 코드를 가지기 때문에 데이터에 프로그래밍 방식으로 액세스하는 방법을 알지 못합니다.

그물을 검색했지만 실제 저수준 개발에 대한 자습서가 부족한 것 같습니다.

나는 C++ 라이브러리가있는 경우에도 작동합니다.

답변

2

BIOS는 MBR에서 코드를 실행하기 전에 여러 인터럽트 처리기를 설정합니다. 이 중 하나는 OS, 장치 드라이버 또는 파일 시스템없이 하드 드라이브에서 직접 읽기/쓰기 섹터와 같은 작업을 수행하는 데 사용할 수 있습니다.

그건 인터럽트 19 (더 일반적으로 알려진대로 13H)입니다.

코드를 읽으려면 코드를 사용하고 코드에는 jmp을 사용해야합니다.

4

좋은 오래된 BIOS calls, PC 용. 보드가 PC가 아닌 경우 - 보드 제조업체에서 IDE/SATA 컨트롤러에 액세스하는 방법에 대한 정보가 필요합니다.

2

플랫폼을 모르면 가장 일반적인 개요 만 제공하기가 어렵습니다.

초기 부팅 코드는 일반적으로 디스크에서 메모리로 추가 블록을 복사하도록 시스템 펌웨어에 요청한 다음 거기에 포함 된 코드를 호출 할 수 있습니다. PC 시스템에서는 BIOS 호출을 의미합니다.

+0

+1 (어쩌면 그렇게 좋지 않음)을 나타내는 +1 : 이것은 플랫폼에 따라 다릅니다. BIOS는 BIOS가있는 시스템의 유일한 솔루션이지만 BIOS가없는 플랫폼도 있습니다. –

+0

downvote 이유? –

관련 문제