pomogite! nie mogu izmienic PARTITION TABLE!!!
.code
org 0h
s:
cli
xor ax,ax
mov ss,ax
mov sp,7c00h
mov ds,ax
mov es,ax
sti
mov ax,201h
mov cx,1
mov bx,7c00h
mov dx,80h
int 13h
mov si,7c00h
mov byte ptr [si+1beh],80h ;wot zdzies proischodzit kakajeto oszybka s adresami. Ni kak nie mogu daze poslac soobszczienije na ekran. pomogicie pozalusta. mozet dzielo w selektorach?
za ranieje SPASIBO!!!
.model tiny
.code
org 0h
s:
cli
xor ax,ax
mov ss,ax
mov sp,7c00h
mov ds,ax
mov es,ax
sti
mov ax,201h
mov cx,1
mov bx,7c00h
mov dx,80h
int 13h
mov si,7c00h
mov byte ptr [si+1beh],80h ;wot zdzies proischodzit kakajeto oszybka s adresami. Ni kak nie mogu daze poslac soobszczienije na ekran. pomogicie pozalusta. mozet dzielo w selektorach?
za ranieje SPASIBO!!!
Ты вообще что делаешь??? Как ты запускаешь свою прогу? Рассмотрим два варианта:
1. Запуск происходит из ДОСА
2. Запуск происходит с boot сектора.
В первом случае при считывании сектора ты затираешь сам DOS.
Во втором - затираешь свою же прогу
Вывод. В любом случае твоя прога работать не будет. Да и вообще, извините конечно, но здесь написана вообще какая-то ерунда, не понятно для чего все это.... Самое главное - нафига прерывания в этом случае запрещать???
P.S. А под виндами он тебе с винта сектор разрешает считать и когда научишься по-русски писать :)?
bajer w tom RELB szto ty eszczio nie widziel MBR naprimier win98. jesli by ty s etim imiel dzielo ty by srazu ponial! Etu progu zapuskajet s dziskiety BIOS wo wriemia starta KOMPA.Etu progu ja prosto podal kak primier.Prablema w adriesach.Snacziala Bios iz 1 sectorta gruzit moju progu po adresu 600h(niwazno) a potom ta proga gruzit progu iz 2 sektora po adresu 7c00h.tepier wrubilsia? niszto nicziego nie zatriot.prosto ja nie mogu izmienic PARTIION TABLE
С этой "PARTIION TABLE" я обращатся умею. Ты пытаешься сделать первый раздел активным, думаешь я это не знаю? Не думай что ты самый умный. Вот только биос грузит сектор как раз в 7c00h.
Как я понял по твоему объяснению BIOS грузит твою прогу неважно куда, но это неверно, он всегда грузит только в 0000:7с00h, да и то, если последние два байта являются 55АА.
По идее, уж если ты меня уверяешь, что прога не затрется, то работать должно.
Не знал что сюда юмор пишут... 8)
Fantomas почитай доки повнимательнее...
MALA KAKI W SRAKI??? JESLI NIET TO DAKAZY!!!!!!!!!!
eto ja wsio znaju! I ja nie samyj umnyj!!! No jesli ty umnyj, pomogi napisac progu kotoraja gruzitsia iz MBR i izmieniajet PARTOION TABLE!!!
MALA KAKI W SRAKI??? JESLI NIET TO DAKAZY!!!!!!!!!!
Ну ладно, для особо тупых, напишу исходник.
Из MBR грузится не будем, т.к. он находится на винте и в нем как раз и находится Partition Table.
Что, опять облажался Fantomas :)? Если грузится с MBR, то даже загружать в память с винта ничего не надо (это сделает за нас BIOS), только сохранять.
Будем грузится с boot сектора дискеты.
Пишу для tasm, надеюсь он у тебя есть
.model tiny
.code
Ideal
org 100h
Start:
xor dx,dx
mov ds,dx
mov es,dx
mov ax,201h
mov cx,1
mov dl,80h
mov bx,600h
int 13h
mov [byte ptr bx+1beh],80h
mov ah,03h
int 13h
jmp $
CODE_LENGTH = $-Start
db 510-CODE_LENGTH dup(0)
dw 0AA55h
end Start
1beh - первый раздел
1ceh - второй
1deh - третий
1eeh - 4-ый
Надеюсь что после вызова int 13h значения регистров не поменяются.
Полученный com файл записываем в самый первый сектор на дискете и все, после перезагрузки, наша прога должна запустится, сделать все что нужно и зависнуть. Жмем резет и смотрим на результат.
Eszczio nozesz i Masm nie starieje cziem 6.12 prislac chroszo!?
Ну если уж ты не можешь этот пример под masm переписать, я с тобой даже разговаривать не буду.
Или я просто не понял что ты написал, КОГДА ПО-РУССКИ писать будешь?
2.Po ruski pisac nie budu
nu wsio ja paszol zwonok na urok!
perepisac ta ja mogu... No mnie masm 6.12 nuzen. 1. ja nie iz Rosii
2.Po ruski pisac nie budu
nu wsio ja paszol zwonok na urok!
Сходи на wasm.ru
Если это первый сектор жесткого диска, то Биос грузит его по другому адресу, в этом секторе-прога, которая грузит первый сектор ЛОГИЧЕСКОГО
АКТИВНОГО ДЛЯ ЗАГРУЗКИ диска по 7с00
Биос грузит сектор по 7с00 только если это первый сектор дискеты!!!!
Если это первый сектор жесткого диска, то Биос грузит его по другому адресу, в этом секторе-прога, которая грузит первый сектор ЛОГИЧЕСКОГО
АКТИВНОГО ДЛЯ ЗАГРУЗКИ диска по 7с00
Гон, причем конкретный. БИОС грузит сектор хоть с винта хоть с дискеты по адресу 7с00h. У винта в первом секторе находится MBR у которой по смещению от 0 до 1BEh находится исполняемый код, далее идет PARTITION TABLE состоящая из четырех записей по 16 байт, и заканчивается все это дело 55AA. Код MBR, после запуска, копирует себя (включая и PARTITION TABLE) по адресу 600h, а уж потом грузит первый сектор (boot сектор) активного раздела по адресу 7c00h.
Если не веришь, дизассемблируй первый сектор с винта. Хотя это во всех доках написано.
Гон, причем конкретный. БИОС грузит сектор хоть с винта хоть с дискеты по адресу 7с00h. У винта в первом секторе находится MBR у которой по смещению от 0 до 1BEh находится исполняемый код, далее идет PARTITION TABLE состоящая из четырех записей по 16 байт, и заканчивается все это дело 55AA. Код MBR, после запуска, копирует себя (включая и PARTITION TABLE) по адресу 600h, а уж потом грузит первый сектор (boot сектор) активного раздела по адресу 7c00h.
Если не веришь, дизассемблируй первый сектор с винта. Хотя это во всех доках написано.
Сам гонишь! Читай документацию внимавтельнее!
Сам гонишь! Читай документацию внимавтельнее!
Ой пардон! Мой глюк! Надо спать больше :(((
Ой пардон! Мой глюк! Надо спать больше :(((
Эээ, я не понял, ты признаешь, что ты не прав или что?
Сам гонишь! Читай документацию внимавтельнее!
Ну дак ты прежде чем понты колотить, заясни, почему я гоню.
Ну если я уж такой гонщик :), пришли выписку оттуда где это написано.
The very first sector of a hard disk (head 0, cylinder 0, sector 1) contains the Master Boot Record which is loaded into memory at 0:7c00 and
executed by the ROM-BIOS during the System startup Sequence.
Ну что, съел? А за базар нужно отвечать :)
Ладно, не поленился, вот выписка из доки
The very first sector of a hard disk (head 0, cylinder 0, sector 1) contains the Master Boot Record which is loaded into memory at 0:7c00 and
executed by the ROM-BIOS during the System startup Sequence.
Ну что, съел? А за базар нужно отвечать :)
Не, выплюнул, несъедобное. И вроде - я ж
сказал, что ошибся и извинился. Можно быть и повежливее.
Ладно, не поленился, вот выписка из доки
The very first sector of a hard disk (head 0, cylinder 0, sector 1) contains the Master Boot Record which is loaded into memory at 0:7c00 and
executed by the ROM-BIOS during the System startup Sequence.
Ну что, съел? А за базар нужно отвечать :)
А разве говорят "very first"? что-то самоклепный док какой-то...
Могу и ошибиться - никто не застрахован...
А разве говорят "very first"? что-то самоклепный док какой-то...
Могу и ошибиться - никто не застрахован...
Док не самопальный (TechHelp 6.0).
Вот более полно, сам бы я столько по англ. не напчатал бы.
Док не самопальный (TechHelp 6.0).
Вот более полно, сам бы я столько по англ. не напчатал бы.
Это я так... Всю документацию кто-то сделал сам :), своими руками... Просто кто-то делает нормально, кто-то нет...
Кстати, зачем сектор окачивается 55АА?
Единственное, что нашел - это символ ПЗУ расширения БИОСа... А сектор грузится и без 55АА,
по крайней мере, на 4 машинах точно.
У меня тоже на всех(8) компах грузится и без сигнатуры.
А по идее при ее переносе задействуется вся шина и если сигнатура равна 55АА то сектор(или контроллер) считается исправным.
Я сам толком не понял чего написал, цитату не найду, а смысл как мог передал.
P.S. мне в руки попала книга Кулакова, не могу оторваться, чего и вам желаю.
Hi
У меня тоже на всех(8) компах грузится и без сигнатуры.
А по идее при ее переносе задействуется вся шина и если сигнатура равна 55АА то сектор(или контроллер) считается исправным.
Я сам толком не понял чего написал, цитату не найду, а смысл как мог передал.
P.S. мне в руки попала книга Кулакова, не могу оторваться, чего и вам желаю.
Э.э.э... а по-русски???
Что ты понимаешь под "сигнатурой" Это по-английски
"boot signature", а по-русски, наверное, загрузочный том? Или я неверно понял...?
P.S. я там писал в скобках 8, а оно получилось как смайл.
А разве говорят "very first"? что-то самоклепный док какой-то...
Могу и ошибиться - никто не застрахован...
Очень даже говорят "very first"!!! Наверное, вы господин какой-то "самоклёпный"!!!
Не примите за оскорбление, но зачем форум то засорять...
Очень даже говорят "very first"!!! Наверное, вы господин какой-то "самоклёпный"!!!
Не примите за оскорбление, но зачем форум то засорять...
1)Не господин, имя есть. Хотя бы товарищ.
2)Мне кажется, что это неверно, но Я МОГУ ОШИБАТЬСЯ.
3)А сектор грузится, вроде везде.