2010-01-02 3 views
1

MBR을 읽고 플로피에 저장하는 어셈블리 코드를 작성하는 용어 프로젝트가 끝났습니다. 나는 버추얼 박스 머신에서 도스에서 INT 13h로 그것을 읽을 수 있었다고 생각한다. 컴퓨터에는 XP가 설치된 파티션이 하나 인 하드 디스크가 하나만 있습니다. MBR을 읽고 인쇄 할 때마다 많은 양의 정크가 생기고 정크 사이에는 다음과 같은 메시지가 표시됩니다. Invalid partition table. 운영 체제를로드하는 중 오류가 발생했습니다.이 웹 사이트의 내용과 같습니다. http://mbr.adamsatoms.com 하지만 시스템이 정상적으로 부팅됩니다. MBR을 올바르게 읽었습니까? 그것은 정말로 MBR입니까? 왜 이런 일이 생길까요? 도움이된다면 읽는 법에 대한 제 코드의 일부입니다.MBR에서 잘못된 파티션 테이블이 나타남 -하지만 시스템이 작동합니다! 왜?

 mov dx,80h ; hard disk first drive 
     mov cx,1 ; Cylinder & Sector 
     mov bx,ds 
     mov es,bx 
     mov bx,offset result 
     mov ax,0201h ; function & sector to be read 
     int 13h  

미리 감사드립니다.

답변

2

"가비지"는 MBR을 구성하는 컴퓨터 코드이며, MBR 코드가 PC를 부팅하는 동안 몇 가지 문제가 발생하면 다양한 오류 문자열이 표시됩니다. MBR 코드의 전체 분석은 사용자가 말한 페이지와 정확히 일치합니다.

+0

감사합니다. 이제 MBR 내의 오류가 발생하여 오류가 발생하면 오류가 있음을 의미하지는 않습니다. – Auxiliary

2

부트 로더의 일부가 표시됩니다. 이것은 드라이브의 첫 번째 섹터에 저장된 프로그램입니다. 파티션 테이블을 읽고 OS 부팅을 시작하는 것입니다. 이 작업이 실패하면 소스를 찾은 오류 메시지가 표시됩니다. 나머지 '정크'는 (기계 코드에서) 부트 로더의 코드가 될 것이므로이를 이해하기 위해 디스 어셈블해야합니다 .

관련 문제