0xAA55 发表于 2014-1-26 23:09:49

【操作系统】LBA怎么转化成CHS寻址

LBA转CHS寻址的方式,c语言的表示方法如下:
柱面号 = (LBA / 每磁道扇区数) / 磁头数;
磁头号 = (LBA / 每磁道扇区数) % 磁头数;
扇区号 = (LBA % 每磁道扇区数) + 1;


16位汇编实现的代码:mov ax,
mov bx,缓冲区
mov es,段
xor dx,dx
div word[每磁道扇区数]
inc dx                                        ;dx=扇区
mov cl,dl
xor dx,dx
div word[磁头数]
                                                ;此时ax=柱面, dx=磁头
mov ch,al
mov dh,dl
mov dl,驱动器号
mov ax,0x0201                        ;读取1个扇区
int 0x13                                ;读取
jnc .ReadOK                                ;读取成功,跳转
页: [1]
查看完整版本: 【操作系统】LBA怎么转化成CHS寻址