Консультация № 194890
06.03.2019, 16:02
0.00 руб.
0 3 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

помогите понять принцип работы LBA, проблема с понятием адресации CHS и LBA.
вот биос, у него 13h прерывание и функции:
...
ah = 02h это CHS (чтение с диска)
al,cx,dx,es:bx в этих регистрах его параметры (цилиндр, сектор, голова) откуда читать сколько и куда записать.
...
AH = 42h: а вот это уже LBA (чтения с диска) я правильно понял?
и у него параметры:
dl = номер диска
ds:si = адрес с параметрами для функции где прописывается адрес LBA по формуле "LBA = (C × HPC + H ) × SPT + (S-1)"

Обсуждение

давно
Старший Модератор
31795
6196
07.03.2019, 13:49
общий
Адресаты:
IBM/MS INT 13 Extensions - EXTENDED READ
Да, есть такая формула:
08h QWORD starting absolute block number (for non-LBA devices, compute as
(Cylinder*NumHeads + SelectedHead) * SectorPerTrack + SelectedSector - 1

Но Вы не обратили внимание на "for non-LBA devices, compute as", что переводится так : "для не-LBA устройств, считается как:". Если Будете использовать LBA-функцию к не-LBA устройству, то Вам нужно будет использовать эту формулу.

В любом случае функции ВIOS - CHS и LBA, это только прослойка над контролером дисковода, работа с которым идет на уровне портов, функции только готовят нужную информацию и свой вызов преобразовывают в последовательность обращений к портам: ATA для дZенствующих.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
401281
56
07.03.2019, 15:37
общий
Адресаты:
огромное спасибо разобрался
давно
Старший Модератор
31795
6196
11.03.2019, 20:13
общий
это ответ
Здравствуйте, Arthur!

IBM/MS INT 13 Extensions - EXTENDED READ
Да, есть такая формула:
08h QWORD starting absolute block number (for non-LBA devices, compute as
(Cylinder*NumHeads + SelectedHead) * SectorPerTrack + SelectedSector - 1))

Но Вы не обратили внимание на "for non-LBA devices, compute as", что переводится так : "для не-LBA устройств, считается как:". Если Будете использовать LBA-функцию к не-LBA устройству, то Вам нужно будет использовать эту формулу.

В любом случае, функции ВIOS - CHS и LBA, это только прослойка над контролером дисковода, работа с которым идет на уровне портов, эти функции только готовят нужную информацию и свой вызов преобразовывают в последовательность обращений к портам: ATA для дZенствующих.

Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа