Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 11:02   #1
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию Определение количества жестких дисков 13h

Вообщем задача стоит определить количество жестких дисков.Воспользоваться нужно 13 прерыванием BIOS'a 13h.
Только я вот функцию в нем подходящую найти не могу.Подскажите пожалуйста.
Код:
08H дать парам диска
Может эта?
bondik вне форума Ответить с цитированием
Старый 30.11.2010, 10:24   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

bondik если я правильно понимаю под DOS может быть максимум 4 HDD Primary/Master Primary/Slave Secondary/Master Secondary/Slave поэтому простейшая программа выглядит так
Код:
.286
.model tiny
.code
org 100h
start:  mov ax,3
	int 10h; очищаем экран
	mov ah,8; Read Drive Parameters
	mov dl,80h;Primary/Master 
	int 13h
	jc a1
	mov ah,9
	mov dx,offset string1
	int 21h
a1:	mov ah,8
	mov dl,81h;Primary/Slave 
	int 13h
	jc a2
	mov ah,9
	mov dx,offset string1
	int 21h
a2:	mov ah,8
	mov dl,82h;Secondary/Master 
	int 13h
	jc a3
	mov ah,9
	mov dx,offset string1
	int 21h
a3:	mov ah,8
	mov dl,83h;Secondary/Slave
	int 13h
	jc exit
	mov ah,9
	mov dx,offset string1
	int 21h
exit:	mov ah,0
	int 16h
	retn
string1 db 'HDD Primary/Master',0Dh,0Ah,'$'
string2 db 'HDD Primary/Slave',0Dh,0Ah,'$'
string3 db 'HDD Secondary/Master',0Dh,0Ah,'$'
string4 db 'HDD Secondary/Slave',0Dh,0Ah,'$'
end start
Не знаю как быть в том случае, если попадется какой-нибудь SCSI или SATA?
Цитата:
When a system has more than 1 drive, the person configuring the system needs a way to set the relationship between the BIOS references (80h, 81h, 82h, ...) and the physical drive. The FDPT Extension easily allows this capability because it stores the physical port addresses and control bits used for setting Master/Slave as well as LBA accessing. One side effect of this implementation is that any drive can be the boot drive, and slave drives may be at any location. The following are some examples of legal configurations:

Standard Configuration:
80h — Primary Master [Int 41h]
81h — Primary Slave [Int 46h]

Alternate Configurations:
80h — Primary Master [Int 41h]
81h — Secondary Master [Int 46h]
82h — Secondary Slave
80h — Secondary Master [Int 41h]
81h — Primary Master [Int 46h]
82h — CD (Secondary Slave)
80h — Secondary Slave [Int 41h]
81h — Secondary Master [Int 46h]
82h — Primary Master
83h — Primary Slave
Т.е. получается, что самый легальный способ — это смотреть в Fixed Disk Parameter Table
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Определение количества слов в тексте. Evgesha Помощь студентам 17 12.04.2011 18:58
Определение количества максимальных значений. denicko Помощь студентам 0 26.10.2010 17:19
Определение количества элементов последовательности ShoOter... Помощь студентам 1 16.05.2010 22:09
Подключение жестких дисков в Linux MalCer Компьютерное железо 4 06.10.2009 13:38
Определение количества знаков после запятой nec117 Общие вопросы .NET 1 01.10.2009 19:04