2015-10-18 3 views
1

Я хочу получить размеры жесткого диска. Я считаю, что мне нужно использовать int 13h с ah = 08h. Я нашел на wikipedia, что она возвращает следующее:Параметры привода считывателя загрузчика

DH логического последнего индекса глав = number_of - 1 (поскольку индекс начинается с 0)

CX [7: 6] [15: 8] логический последний индекс цилиндров = number_of - 1 (поскольку индекс начинается с 0)

[5: 0] логический последний индекс секторов на дорожке = number_of (поскольку индекс начинается с 1)

проблема заключается в том, что я не знаю, как читать только биты [5: 0], чтобы получить последний индекс сектора на дорожку, а также с [7: 6] [15: 8], чтобы получить последний индекс цилиндров. Я был бы очень благодарен, если бы кто-то указал мне на правильный путь или объяснил, как это сделать.

+0

Я не имею никакого кода, потому что я начал с самого начала, и Im мышление развивать какой-то файловой системы. То, что мне нужно сделать, - подсчитать, сколько 512 бит секторов в этом диске – vakus

+3

Я думаю, что его бессмысленно до тех пор, пока у меня нет идеи, что я делаю – vakus

+0

код для этого на самом деле не очень всего 5, может быть, 6 строк кода 'xor ax, ax mov es, ax mov di, ax mov ah, 0x08 int 13h' и' dl', номер диска которого присваивается BIOS при чтении загрузчика – vakus

ответ

2
mov ax, cx 
and ax, 63 
shr cl, 6 
xchg cl, ch 

Это оставляет секторов в AX и цилиндры в CX

Смежные вопросы