'부트레코드'에 해당되는 글 1건

  1. 2007.07.27 FAT12과 FAT16의 부트레코드의 구성이 같은모양인가 보다 2

FAT12과 FAT16의 부트레코드의 구성이 같은모양인가 보다

음.......; 전에 했던거지만
나중에 다시 찾아볼일이 있거나
필요한 사람이 있을까봐 다음을 기록한다

ORG 0x7c00

;Fat12 FileSystem BootRecord
;문자열(String)일 경우에 꼭 최고 바이트를 맞춰야하며,
;적기싫다면 공백으로(space) 채워넣어야만 한다
;그리고 이위에는 (BR을 유지하기 위해) 어떤 코드라도 들어가면 안된다
;(Vmware에서는 상관않는 모양이지만,Qemu에서, 이걸제대로 하지안으면 작동이 안된다.
;필히 밎의 jmp로 따로 만든 레이블로 점프하게 하자

 jmp register_init     ;Jump Boot Code
 db 0x90                ;Jump Boot Code Padding
 db "LolyComp"      ;OEM Name (String,MAX 8Byte)
 dw 512                 ;Bytes Per Sector
 db 1                     ;Sector Per Cluster
 dw 1                    ;Reserved Sector Count
 db 2                     ;Number of FATs
 dw 224                 ;Boot Entry Count
 dw 2880                ;Total Sector 12(16)
 db 0xf0                 ;Media 여기선 Floppy Disk,보통은 HDD면0 ,자세한건 링크를 참조..
 dw 9                    ;Fat Size 12(16)
 dw 18                   ;Sector Per Track
 dw 2                    ;Number of Heads
 dd 0                     ;Hidden Sector
 dd 2280                ;Total Sector
 db 0                     ;Driver Number
 db 0                     ;Reserved1
 db 0x29                ;Boot Signature
 dd 0xffffffff           ;Volume ID
 db "My_os_VOL "  ;Volume Lable (String 11 Byte)
 db "FAT12  "         ;File System Type (String 8 Byte)
 RESB 18               ;Padding (왜 채워주는건진 잘 모르겠다)

register_init:
;...여기서부터 레지스터 초기화 들어갑니다~


 자세한 설명은 다음 링크를 참조하면 답이 나옵니다
 FAT12 bootrecord랑 FAT16 bootrecord의 구조가 같으므로 FAT16을 참고...
 표(?)그림(?)을 보면 단박에 이해가 갈거라고 확신합니다.

http://network.hanb.co.kr/view.php?bi_id=1259


ORG 0x7c00의 정체..
왜 하마터면 0x7c00 인가? 하고 KLDP에 질문한적이 있는데.
그에 따라오는 답변은 아주 간단명료 했다.. 처음에 IBM아저씨들이 그렇게 정했으니까..
랍니다.. 꼭 이값을 쓰는 특별한 목적은 없는건지,아니면 이값자체가 그리 큰 의미가
없나봅니다. 뭐 책에도 나와있긴했지만(책 사기전이였거든요)

파일시스템.
FAT파일 시스템만 대충 봐둔게 좀 도움이 되네요..
문제는 뒤에는 몰라..겠지만... 이거 과연 스터디나 할수 있을지..

prev 1 next