![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
int 13h [D5, D6, Win95/98]
sammy © (2002-10-01 10:47:00)Хочу сохранить 512 байт загрузчика в
файл.
По нажатию button:
mov ah,02h ;read sectors func
mov al,1 ;quantity of sectors
mov ch,0 ;0 cylinder
mov cl,1 ;1 sector
mov dh,0 ;number of surface
mov dl,80h ;hdd code 0-A: 1-B: 80h-hdd
mov bx,offset mboot ;buffer for read
int 13h ;goto bios
Далее запись из буфера mboot в файл.
Буфер объявлен так
mboot db 512 dup(0)
Все останавливается на int 13h
и сразу ошибка.
Я что-то не так сделал?
Отмечу сразу - это не вирус!
Осваиваю низкоуровневое программирование + Delphi.
drpass (2002-10-01 15:17:00) [1]Только в DOS. В Windows ( особенноХР) прямой доступ в диску закрыт
Smithson (2002-10-01 14:53:00) [2]В защищенном режиме прерывания переназначены. Поэтому никакого 13h для работы с дисками нет. В Windows ищи подходы к драйверу устройства (диска).
Digitman (2002-10-01 14:47:00) [3]ты понимаешь разницу между real-, protected- и VM86-режимами работы CPU i80x86 ?
sammy (2002-10-01 14:28:00) [4]Честно говоря это не в букваре.
Подобная штука находится в книге
Рудакова и Финогенова про ассемблер.
Вот я и попробовал его перенести на Delphi.
Честно говоря Вынь и на асм ругается и на
Delphi. Что-то не получается.
Я даже в ХР попробовал. Он тоже показал
ошибку, 13h не выполнил, но последующий
код выполнил и создал файл размером 512 байт.
Ну-с, господа, как же выполнить 13-е прерывание?
Если это не возможно, то как это сделать
средствами Delphi?
А с 21h пока все работает, тьфу-тьфу!
Жду посылок.
Digitman (2002-10-01 14:00:00) [5]>sammy
В каком же букваре по Делфи (именно - по Делфи !) ты нашел этот пример ?
Игорь Шевченко (2002-10-01 13:27:00) [6]Вообще-то Delphi и низкоуровневое программирование - вещи, мягко говоря, не совместимые. Особенно, на таком низком уровне... :-)))
RV (2002-10-01 13:23:00) [7]чего захотел! 13 прерывание...
тут 21 не всегда под Виндой работает.