当前位置: 首页 > 工具软件 > Silence-Boot > 使用案例 >

boot.s

百里光熙
2023-12-01

描述1

类型

大小

地址偏移

 

jmp LOCAL(after_BPB) 

 

2

 

 

nop

 

1

 

 

_start + GRUB_BOOT_MACHINE_BPB_START 

占位

1

 

 

_start + 4 

下节开始于4

 

0x7c04

 

 

 

 

0x7c04

 

Mode

Byte

1

0x7c04

保存磁盘读模式

disk_address_packet: 

 

0

0x7c05

 

sectors:

Long

4

0x7c05

 

Heads

Long

4

0x7c09

 

Cylinders:

Word

2

0x7c0d

 

Sector_start

Byte

1

0x7c10

 

Head_start

Byte

1

0x7c11

 

Cylinder_start

Word

2

0x7c12

 

 

 

0x7c14

 

 _start + GRUB_BOOT_MACHINE_BPB_END

占位

0

0x7c5a

 

kernel_address

Word

2

0x7c5a

0x8000

_start + GRUB_BOOT_MACHINE_KERNEL_SECTOR 

占位

 

0x7c5c

 

kernel_sector

Long*2

8

0x7c5c

5c-63

_start + GRUB_BOOT_MACHINE_BOOT_DRIVE 

占位

0

0x7c64

 

boot_drive

Byte

1

0x7c64

 

LOCAL(after_BPB): 

 

0

0x7c65

0x7C00处的跳转到达这里 

cli     

 

1

0x7c65

 

_start + GRUB_BOOT_MACHINE_DRIVE_CHECK

占位

0

0x7c66

检查到引是否偏移66

boot_drive_check

标号

0

0x7c66

检查dl中驱动器号

 

 

 

 

 

 


Struct DAP{

BYTE sizeOfDap;         //1

BYTE reserved;        //1;  =0

WORD nrSectionToRead; //2  需要读的扇区数

LONG offset;          //4   segment:offset指向内存缓冲区,读到的东西放到这里

LONGLONG startSectionNr;//8 起始扇区编号

}disk_address_packet



| 硬盘 | 内存 内存地址

|                              |

| |          |                            |

|                               |          |压缩的内核 |

|continue kernel, if exists |          | |

| kernel.img                           | |startup.s               |0x8200

| diskboot.s                            | |diskboot.img        |0x8000

|___MBR,boot.s________ |          |_boot.s_______ |0x7c00


startup.s  检验内核 解压内核 初始化内核变量  跳转到内核(内核是grub内核,不是linux内核)




 类似资料:

相关阅读

相关文章

相关问答