x86에서 부트스트랩 코드를 작성중입니다.

akcytm의 이미지

510, 511번째 바이트에
각각 0xAA, 0x55를 넣어야
바이오스에서 정상적으로 MBR로 인식하고,
0xAA55가 없으면...

바이오스에서 에러가 난다고 하더군요.

호기심에, 0xAA55(Masic number)를 지우고
컴파일한 다음, 돌려보았으나

아무 문제없이 잘~ 돌아갔습니다.
왜 이런지 혹시 아시는분 계십니까 ㅠ?

charsyam의 이미지

그냥 여러가지 추측이 가능한게

1. 0xAA55 지우고 나서 이미지에 안 써졌다.
2. BIOS가 그냥 그렇게 만들어졌다.
어차피 0번 섹터는 다 MBR인지 아므로, 위의 내용만 맞는지 확인한다. 일 수 있겠네요.
3. 해당 드라이브가 메인이 아니다.

뭐, 대략 이정도일 듯 합니다.

=========================
CharSyam ^^ --- 고운 하루
=========================

akcytm의 이미지

1번은 일단 아닙니다.
여러번 해봤거른요. 디스어셈블 해서 제대로 써져있는지 확인했습니다.
2번이라면 컴퓨터마다 작동이 다 다를수도 있단거군요.
규칙을 잘 준수해야지...

감사합니다!