IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Работа с диском на физическом уровне
сообщение
Сообщение #1


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


smile.gif ВОт начал было ASM мотреть и вот по
----------
|int 13h WINDOWS XP недает даже читать диск
----------
говорит что приложение использует прямой доступ
как сделать так чтабы WINDOWS не прерывал
работу программы ВОТ :-[


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


{Эххх - попробуй вот это :o}


Uses
   Crt;
Var
  Buf:array[1..512] of Char;
  i:Integer;
  Name:String;
Begin
    ClrScr;
    Name:='boot!sec.bin'#0;
    WriteLn('Вставьте дискету и нажмите any key...');
    asm
       mov ah,0
       int 16h
       mov al,0        {Номер логического диска}
       mov cx,1        {Количество секторов для чтения}
       mov dx,0        {Номер стартового сектора}
       lea bx,Buf      {Смещение к нашему буферу}
       int 25h         {читаем}
    end;
    WriteLn('Прочитали...смотрим содержимое:');
    {Выводим, пропуская перевод строки и возврат каретки, дабы не уехало...}
    For i:=1 to 512 do If (Buf[i]<>#10) or (Buf[i]<>#13) then Write(Buf[i]);
    asm
       {Сохранить, прочитанный сектор на диск под именем Name}
       mov ax,3D02h    {Открыть файл}
       lea dx,Name     {Адрес имени}
       inc dx          {Пропускаем байт размера стринга}
       int 21h
       jnc @AlrExst    {Уже есть}
       mov ah,3Ch      {Если нет - создаем}
       mov cx,20h      {Атрибут - архивный}
       int 21h         {Обращаемся к ДОС}
@AlrExst:mov bx,ax      {Дескриптор}
       mov ah,40h      {Запись}
       mov cx,512      {Кол-во байт для записи}
       lea dx,Buf      {Буфер с прочитанным содержимым нулевого сектора}
       int 21h         {пишем}
       mov ah,3Eh      {Закрыть файл}
       int 21h
    end;
    WriteLn('Вставьте следующую дискету then press any key...');
    {Можешь оформить в виде отдельных процедур}
    {А заодно просмотреть содержимое бут-сектора на ЖД - файл boot!sec.bin}
    asm
       mov ah,0
       int 16h
       mov ax,3D02h    {Открыть файл с содержимым бут-сектора}
       lea dx,Name     {Адрес имени}
       inc dx          {Пропускаем байт размера стринга}
       int 21h
       mov bx,ax       {Сохр. дескриптор}
       mov ah,3Fh      {Читать из файла}
       mov cx,512      {512 байт читать}
       lea dx,Buf      {Буфер для чтения}
       int 21h         {читаем}
       mov ah,3Eh      {Закрыть файл}
       int 21h
       mov al,0        {Номер логического диска}
       mov cx,1        {Количество записываемых секторов}
       mov dx,0        {Номер стартового сектора}
       lea bx,Buf      {Буфер}
       int 26h         {пишешь}
    end;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Shadow   Работа с диском на физическом уровне   24.03.2003 10:09
GLuk   Re: Работа с диском на физическом уровне   24.03.2003 10:23
Shadow   Re: Работа с диском на физическом уровне   24.03.2003 10:30
GLuk   Re: Работа с диском на физическом уровне   24.03.2003 10:47
Shadow   Re: Работа с диском на физическом уровне   24.03.2003 11:29
GLuk   Re: Работа с диском на физическом уровне   24.03.2003 11:46
Shadow   Re: Работа с диском на физическом уровне   24.03.2003 12:10
Shadow   Re: Работа с диском на физическом уровне   24.03.2003 23:22
GLuk   Re: Работа с диском на физическом уровне   25.03.2003 1:40
Shadow   Re: Работа с диском на физическом уровне   25.03.2003 2:24
GLuk   Re: Работа с диском на физическом уровне   25.03.2003 10:00
Shadow   Re: Работа с диском на физическом уровне   25.03.2003 13:04
GLuk   Re: Работа с диском на физическом уровне   25.03.2003 14:50
Shadow   Re: Работа с диском на физическом уровне   26.03.2003 4:01
Shadow   Re: Работа с диском на физическом уровне   26.03.2003 8:55
GLuk   Re: Работа с диском на физическом уровне   26.03.2003 9:59
Shadow   Re: Работа с диском на физическом уровне   26.03.2003 11:42
GLuk   Re: Работа с диском на физическом уровне   26.03.2003 12:24
Shadow   Re: Работа с диском на физическом уровне   26.03.2003 13:29
Shadow   Re: Работа с диском на физическом уровне   26.03.2003 16:30
GLuk   Re: Работа с диском на физическом уровне   26.03.2003 22:08
GLuk   Re: Работа с диском на физическом уровне   26.03.2003 23:11
Shadow   Re: Работа с диском на физическом уровне   28.03.2003 19:05
GLuk   Re: Работа с диском на физическом уровне   28.03.2003 20:51
Shadow   Re: Работа с диском на физическом уровне   3.04.2003 17:08
GLuk   Re: Работа с диском на физическом уровне   3.04.2003 21:56
Shadow   Re: Работа с диском на физическом уровне   6.04.2003 17:24
GLuk   Re: Работа с диском на физическом уровне   6.04.2003 20:45
GLuk   Re: Работа с диском на физическом уровне   6.04.2003 23:45


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 20:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name