![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]()
Из знаний ассемблера, матем-ие операции
![]() |
![]() |
![]() |
![]() |
#2 | |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]() Цитата:
int 25 может работать только в режиме реальных адресов либо в режиме виртуального 8086 под Windows. Режим релаьных адресов исключается так как надо использовать Delphi, а дельфийские программы могут работать только под Windows. Режим виртулаьного 8086 тоже невоможен так как это исключает возможность нормальной работы самой дельфийской программы |
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
первый сектор жесткого диска содержит главную загрузочную запись, в нём же содержится таблица размещения разделов (это таблица где написано расположение каждого раздела C:, D:,E:....).
Тебе надо просто считывать первый сектор жесткого диска, обработать его и вывести данные. Последний раз редактировалось rpy3uH; 03.10.2007 в 19:59. |
![]() |
![]() |
![]() |
#5 | |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]() Цитата:
Есть слухи что в винде ХР это сделать не получится... |
|
![]() |
![]() |
![]() |
#6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
правильно в WinNT это не получится. но если запустить паскалевскую прогу из под DOS, либо из под Win9x, то получится.
Надо просто считать самый первый сектор (т.е. нулевой сектор диска) жесткого диска. В регистре cx int25 принимает количество сектором для чтения, в dx логический номер сектора т.е. 0. там ещё в al надо указать номер диска и в ds bx адрес куда копировать данные. Как было уже сказано в WinNT это работать не будет. В WinNT надо использовать функции CreateFile и DeviceIoControl |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]()
Весь вопрос уперается в реализацию, есть мысли как это можно сделать?
|
![]() |
![]() |
![]() |
#8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
вот пример: считывает первый килобайт с жётского диска и сохраняет в файл. Я дизассемблировал файл - вроде там находится первичный загрузчик и ещё какая-то ерунда, наверно таблица размещения разделов.
Код:
Код:
Последний раз редактировалось rpy3uH; 05.10.2007 в 21:04. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]()
Вот код программы которую хотел получить, только ненашол структуру NTFS. В программу для упрощения использованно чтение дисков типа FAT12, FAT16 (дискет). Другие типы невводились.
Последний раз редактировалось Alter; 21.02.2008 в 19:22. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Xml, как правильно прочитать | Parcenson | Общие вопросы Delphi | 0 | 02.09.2008 06:29 |
Где прочитать про WinApi? | jurij | Win Api | 1 | 27.05.2008 13:32 |
прочитать что выдало CMD.exe | malevich | Win Api | 5 | 03.03.2008 21:35 |
Как прочитать сообщение по ICQ? | Иллидан | Работа с сетью в Delphi | 5 | 18.02.2008 18:33 |
как прочитать файл | бодяга | Общие вопросы Delphi | 1 | 09.09.2007 20:37 |