Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 424
от 23.11.2002, 18:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1909
Отправлено ответов: 5927
Активность: 310.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.98
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 119.78
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 129.93
URL: моя рассылка по Protected Mode
[Подробней >>]
 
St
Статус: Опытный
Общий рейтинг: 117.24
[Подробней >>]
keleb-glin
Статус: Доверительный
Общий рейтинг: 116.34
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 112.39
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 137.56
URL: Задачи по ассемблеру
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
Sergey
Статус: Начальный
Общий рейтинг: 101.85
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 111.86
URL: мощный файловый архив
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 151.87
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 125.67
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.3
[Подробней >>]
 
CodeBuilder
Статус: Начальный
Общий рейтинг: 103.22
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 122.79
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1852. Доброго времени суток, уважаемые эксперты. Спасибо всем кто советовал мне использовать Win Socket дл... (ответов: 2)
Вопрос № 1853. Дело в том что изучать ассемблер мне пришлось совсем недавно, при этом сразу вручили задание в работ... (ответов: 7)
Вопрос № 1854. идите подрочите и оближите... (ответов: 2)
Вопрос № 1856. Никак не могу понять принципы программирования 8259. Что, например, осуществляет следующая подпрогра... (ответов: 1)
Вопрос № 1857. Hello! Спасибо всем ответившим на мой вопрос (1838). Мне это помогло, но может есть еще идеи, было б... (ответов: 2)
Вопрос № 1858. Hi ! У меня есть TD.exe, программа ком(MyName.com), которая достаточна длинная. Я хочу поставить точ... (ответов: 6)
Вопрос № 1859. Хай, эксперты! Вы были на сайте www.hugi.de/compo Там проводится всемерные соревнования на самый мал... (ответов: 6)
Вопрос № 1860. Отвечает Bob Johnson Приветствую Вас, Алексей! Ок, попробую написать задания на основе тех программ.... (ответов: 1)
Вопрос № 1861. Здравствуйте, уважаемые эксперты. Есть несколько вопросов. Пусть есть программа. У нее ты нажимаеш... (ответов: 3)
Вопрос № 1862. Проблема такова: убилась таблица разделов винта. Запускал Amithlon(хардверный эмуль Амиги), решил ... (ответов: 5)

Вопросов: 10, ответов: 35


 Вопрос № 1852

Доброго времени суток, уважаемые эксперты.
Спасибо всем кто советовал мне использовать Win Socket для соединения двух компьютеров через сеть. Однако есть вопрос, для соединения нужен IP адрес другого компьютера, или хотябы его имя, чтоб по нему узнать IP. А если я не знаю имени компьютера ни его IP, то наверное помоч может только сканирование IP адресов. Но как это делать я понятия не имею, может кто может помоч, хотяб советом. Зарание спасибо, MegaLama



Вопрос отправлен: 18.11.2002, 19:59
Отправитель: megalama

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, megalama!
Если у тебя просто дома два компа соединены - выстави в свойствах протоколов TCP/IP в настройке сети им адреса, например 192.168.5.1 и 192.168.5.2 и все. И используй их при обращении.
Если же ты именно должен найти хост в локальной сети - можешь использовать широковещательную посылку и ловить ее своей прогой (когда ты поймаешь broadcast пакет, в нем будет обратный адрес - высылай туда адрес). Но это не идет дальше первого router'a в сети.
Еще можешь воспользоваться DNS серверами - функция gethostbyname, но тогда компьютер, который ты ищещь должен быть зарегистрирован на DNS сервере.
А так, например, если ты выходишь в internet через своего провайдера и в это же время твой сосед выходит в интернет, не найдешь ты его IP адреса. Можешь попросить послать его письмо, принять его и в заголовке посмотреть адрес.


Ответ отправлен: 19.11.2002, 17:13
Отправитель: Bob Johnson


Отвечает ASMодей

Здравствуйте, megalama!
Чтобы узнать IP-адрес, нужно посмотреть его на втором компьютере.
Делается это так: в свойствах сетевого окружения выбирается TCP/IP
и смотрятся его свойства. Там должен быть IP-адрес и маска подсети,
но если там только пустые ячейки, то это значит, что TCP/IP не
настроен и нужно руками набрать любой подходящий адрес, а маска
подсети подойдет и 255.255.255.0


Ответ отправлен: 19.11.2002, 16:14
Отправитель: ASMодей


 Вопрос № 1853

Дело в том что изучать ассемблер мне пришлось совсем недавно, при этом сразу вручили задание в работе: "Обработка запроса ДА/НЕТ. Если ДА то повторить, если НЕТ то выход". Написал но неправильно т.к. выдается ошибка Near jump or call to different CS. Если можно напишите новый код или внесите изменнения с комментариями плз.


Приложение:


Вопрос отправлен: 18.11.2002, 20:36
Отправитель: unik

[Следующий вопрос >>] [Список вопросов]

Отвечает Broken Sword

; tasm entry.asm
; tlink /x /3 /t entry.obj
; entry.com
; 48 bytes (without CR LF pair)
.model tiny
.186
.code
org 100h
@@start:
xchg AX,BP
mov DX,offset quest1
int 21h
dec AH
@@S1: int 21h
cmp AL,30h
jnz @@S1
@@finish:
inc AH
mov DX,offset quest2
int 21h
ret
quest1 db 'Question: 1-Yes 0-No',0Dh,0Ah,'$'
quest2 db 'Quit','$'
end @@start

Ответ отправлен: 18.11.2002, 22:29
Отправитель: Broken Sword


Отвечает St

Привет, unik!
см Приложение
St

Приложение:

Ответ отправлен: 19.11.2002, 18:00
Отправитель: St


Отвечает keleb-glin

Добрый день, unik!
Сразу после org 100h напиши:
assume cs:cseg, ds:cseg, es:cseg, ss:cseg


Ответ отправлен: 18.11.2002, 21:36
Отправитель: keleb-glin


Отвечает Beeblebrox

Добрый день, unik!
Вставь вторую строку:
assume cs:cseg, ds:cseg
И еще, для COM файла (ведь у тебя получается COM, я прав?) совершенно необязательно настраивать ds=cs, потому что они уже равны с самого начала:)

Ответ отправлен: 19.11.2002, 09:02
Отправитель: Beeblebrox


Отвечает Maverick

Доброе время суток, unik!
После строки cseg segment, вставь строчку:
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
Я так понял у тебя Tasm, в следующий раз пиши какой у тебя ассемблер. С Masm такой проблемы не возникает.


Ответ отправлен: 19.11.2002, 07:49
Отправитель: Maverick


Отвечает ASMодей

Приветствую Вас, unik!
Ты забыл перед началом кода поставить ASSUME CS:CSEG


Ответ отправлен: 19.11.2002, 16:15
Отправитель: ASMодей


Отвечает Bob Johnson

Здравствуйте, unik!
Да нормально ты все написал! Вот только второй строчкой поставь
assume cs : cseg
чтобы компилятор знал, что регистр cs указывает именно не твой сегмент кода!


Ответ отправлен: 20.11.2002, 13:56
Отправитель: Bob Johnson


 Вопрос № 1854

идите подрочите и оближите


Приложение:


Вопрос отправлен: 18.11.2002, 20:57
Отправитель: gosu

[Следующий вопрос >>] [Список вопросов]

Отвечает Maverick

Слышь ушлепок, ты чо луга попутал, слабо это лично сказать?
Или тебя прет, когда ты из за маминой юбки ругаешся?
Мож у тебя есть еще чо сказать, дык ты не стесняйся, дай мыл, ох повоюем?
Давай на Maverick_w911@mail.ru там ты у меня и ..., и полижешь.
P.S. Извиняюсь, что в рассылку, но эта петушня уже достала.
ОЛЕГ, твоя система определяет адреса? Ты бы дал адресок этого петушка всем экспертам и желающим читателям, а уж мы бы повеселились всласть :)


Ответ отправлен: 19.11.2002, 07:49
Отправитель: Maverick


Отвечает Bob Johnson

Доброе время суток, gosu!
Лучше сам подрочи нам и оближи у нас. Так будет значительно интересней.


Ответ отправлен: 20.11.2002, 13:57
Отправитель: Bob Johnson


 Вопрос № 1856

Никак не могу понять принципы программирования 8259. Что, например, осуществляет следующая подпрограмма?
seg000:198A subr_SetInterruptController proc far ; CODE XREF: subr_GoMonitor+9DP
seg000:198A cli
seg000:198B xor al, al
seg000:198D out 0F1h, al ; AT 80287 Reset.
seg000:198D ; Coprocessor is reset from protected mode to real mode
seg000:198F mov al, 11h ; reset
seg000:1991 out 20h, al ; Interrupt controller, 8259A.
seg000:1993 jmp short $+2
seg000:1995 jmp short $+2
seg000:1997 mov al, 8
seg000:1999 out 21h, al ; Interrupt controller, 8259A.
seg000:199B jmp short $+2
seg000:199D jmp short $+2
seg000:199F mov al, 4
seg000:19A1 out 21h, al ; Interrupt controller, 8259A.
seg000:19A3 jmp short $+2
seg000:19A5 jmp short $+2
seg000:19A7 mov al, 1
seg000:19A9 out 21h, al ; Interrupt controller, 8259A.
seg000:19AB jmp short $+2
seg000:19AD jmp short $+2
seg000:19AF mov al, 0A8h ; 'è'
seg000:19B1 out 21h, al ; Interrupt controller, 8259A.
seg000:19B3 mov cs:byt_IntrptEnableReg_8259, 0A8h ; 'è'
seg000:19B9 mov al, 11h ; reset
seg000:19BB out 0A0h, al ; PIC 2 same as 0020 for PIC 1
seg000:19BD jmp short $+2
seg000:19BF jmp short $+2
seg000:19C1 mov al, 70h ; 'p'
seg000:19C3 out 0A1h, al ; Interrupt Controller #2, 8259A
seg000:19C5 jmp short $+2
seg000:19C7 jmp short $+2
seg000:19C9 mov al, 2
seg000:19CB out 0A1h, al ; Interrupt Controller #2, 8259A
seg000:19CD jmp short $+2
seg000:19CF jmp short $+2
seg000:19D1 mov al, 1
seg000:19D3 out 0A1h, al ; Interrupt Controller #2, 8259A
seg000:19D5 jmp short $+2
seg000:19D7 jmp short $+2
seg000:19D9 mov al, 0E2h ; 'ò'
seg000:19DB out 0A1h, al ; Interrupt Controller #2, 8259A
seg000:19DD sti
seg000:19DE retf
seg000:19DE subr_SetInterruptController endp



Вопрос отправлен: 18.11.2002, 21:19
Отправитель: Владимир

[Следующий вопрос >>] [Список вопросов]

Отвечает Broken Sword

Добрый день, Владимир!
Подпрограмма настройки контроллера прерываний.
Делает следующие вещи:
-сброс математического сопроцессора
-посыл ICW1: срабатывание по фронту сигнала IRQ/ размер вектора - 8 байт/ будет послано ICW4
-посыл ICW2,3,4: контроллер в режиме фиксированных приоритетов
-установка режима буферизации и режимов совместимости и т.п.
Ну и в том же духе - посыл команд ICW1, 2,3,4

Ответ отправлен: 18.11.2002, 22:29
Отправитель: Broken Sword


 Вопрос № 1857

Hello!
Спасибо всем ответившим на мой вопрос (1838). Мне это помогло, но может есть еще идеи, было бы интересно.
Еще раз всем спасибо.
Удачи



Вопрос отправлен: 18.11.2002, 23:05
Отправитель: Snaker (garry_j_p@hotmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Sergey

Приветствую Вас, Snaker!


Ответ отправлен: 20.11.2002, 18:54
Отправитель: Sergey


Отвечает Maverick

Добрый день, Snaker!
Доку выслал, смотри.
Если эта не поможет, то мыль, еще вышлю.
А какие тут могут быть еще идеи, надо ковыряться с загрузчиком.


Ответ отправлен: 19.11.2002, 07:58
Отправитель: Maverick


 Вопрос № 1858

Hi !
У меня есть TD.exe, программа ком(MyName.com), которая достаточна длинная. Я хочу поставить точку останова (клавиша F2) допустим на функции, которую не вижу в начале этой программы, то есть функция внутри функции и еще несколько раз так. Как я могу это сделать? Это вообще возможно? Знаю наверняка, что после того как мне получится поставить break point я должен нажать F9, и TD меня остановит на моей break point.
Надеюсь, объяснил проблему понятно.
Best regards
Alex.



Вопрос отправлен: 18.11.2002, 23:07
Отправитель: Alex (alexneta@aport2000.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает St

Привет, Alex!
Придется искать то место где надо поставить BP или руками или по поиску (там есть по правой клавише - хотя и не очень просто). А потом F9.
St

Ответ отправлен: 19.11.2002, 18:14
Отправитель: St


Отвечает Eugene

Здравствуйте, Alex!
Не понял в чём проблема. Ты просто несколько раз нажми PageDown, и дойдя до нужного места просто поставь break point.

Ответ отправлен: 19.11.2002, 08:59
Отправитель: Eugene


Отвечает keleb-glin

Здравствуйте, Alex!
Не понимаю твойе проблемы. Точку останова можно поставить в любой программе в любом месте. Если выполнение дойдёт до точки, оно остановится. И неважно, насколько большая программа и сколько уровней вложенность. Файл один - код в памяти весь. Ищи лучше.


Ответ отправлен: 19.11.2002, 22:46
Отправитель: keleb-glin


Отвечает masquer

Здравствуйте, Alex!
Ну, хочешь в том месте где остановиться нужно вставь db 0CCh. На этом месте дебугер и остановится

Ответ отправлен: 19.11.2002, 11:10
Отправитель: masquer


Отвечает Broken Sword

Доброе время суток, Alex!
Доброе время суток, Alex!
чето я непонял... тебе лень найти эту ф-цию чтоли? А com-ник, стало быть, твой собственный? (раз ты так осведомлен, что эта функция вообще есть, но очень далеко).
Ну тогда перед вызовом функции этой в исходнике вставь int 3 и откомпиллируй. Затем просто жмешь F9 и TD вывалится на этой инструкции
Или компиль в экзешник с отладочной инфой - тогда можно будет ставить бряк на имя функции в SI

Ответ отправлен: 19.11.2002, 14:33
Отправитель: Broken Sword


Отвечает Bob Johnson

Здравствуйте, Alex!
А что за проблема? Во-первых можно прост несколько раз нажать page down и код твоей процедуры появится в окне. Тогда там и ставь breakpoint. Во-вторых - можно нажать в окне дизассемблера правую кнопку мыши и в появившемся меню выбрать "goto...", задать адрес и дизассемблер перейдет туда. При этом текущее значение регистра IP процессора (а, значит и точка выполнения) не изменяются.


Ответ отправлен: 20.11.2002, 13:57
Отправитель: Bob Johnson


 Вопрос № 1859

Хай, эксперты!
Вы были на сайте www.hugi.de/compo
Там проводится всемерные соревнования на самый маленький код. Базаров нет, там очень сильные соперники, но чем мы хуже. Там можно отправлять решение от групп.
Так вот почему бы нам не побить буржуинов, создать группу RusFAQ, уболтать Олега сделать отдельную рассылку и в ней делиться идеями по оптимизации кода к конкретному заданию. А затем уже кто нибудь будет отправлять готовое решение туда. Как говорится, вместе мы сила!!!
Какие будут соображения?
Ответьте плиз все.
Спасибо за внимание.



Вопрос отправлен: 19.11.2002, 10:07
Отправитель: Maverick (Maverick@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Здравствуйте, Maverick!
Дело, конечно хорошее, только надо это кому-то уйму время и сил потратить на стабилизацию этого всего. Будешь делать, тебя поддержим, а если только предлогать готов, то мы сами можем что хочешь предложить!

Ответ отправлен: 21.11.2002, 19:01
Отправитель: Dark_Lord


Отвечает Ayl

Здравствуйте, Maverick!
В принципе, можно попробовать. Правда, думаю, что дело заглохнет очень быстро, хотя если будет отдельная рассылка, то есть шанс. Я помню, какой всплеск активности был где-то с полгода назад (или больше?), когда оптимизировали прогу для печати строки с преобразованием... WizardX отдыхает! :-)
(Вот блин, вспомнилось :-) )

Ответ отправлен: 19.11.2002, 10:55
Отправитель: Ayl


Отвечает Beeblebrox

Приветствую Вас, Maverick!
Соображение очень простое - никому это нахер не надо. Я уже полгода там сижу, поэтому знаю, что это интересно всего 20 энтузиастам. Пытался я агитировать и здесь, но потом плюнул - лучше я буду делать все сам и сам получу весь кайф от процесса.
Да и, положа руку на сердце, нет здесь соперников с нужным уровнем мышления. Такие люди, как Ruud, INT-E крайне редко встречаются в жизни. Есть у меня один такой друг, способный их побить, но он асм забросил уже давно и ушел в бизнес...
А местные эксперты говорят, что нет времени, и в то же самое время плодят мегабайты под винду...
PS Я готов поделиться своими исходниками хоть прямо сейчас, это 151 байт (5-е место)

Ответ отправлен: 19.11.2002, 10:48
Отправитель: Beeblebrox


Отвечает masquer

Доброе время суток, Maverick!
Как и сказал Beeblebrox - этим нужно увлечься, загореться. Меня, например, интересует оптимизация по скорости, чем по размеру, а это уже несколько разные вещи.

Ответ отправлен: 19.11.2002, 11:34
Отправитель: masquer


Отвечает Broken Sword

Добрый день, Maverick!
хе хе хе... попробовать, конечно, можно...

Ответ отправлен: 19.11.2002, 15:36
Отправитель: Broken Sword


Отвечает Bob Johnson

Здравствуйте, Maverick!
Да вполне можно. Тогда и реально что-нибудь выиграть. Только делать надо именно рассылку, а не форум - т.к. на форум надо самому ходить, в то время как рассылка сама в ящик приходит.


Ответ отправлен: 20.11.2002, 13:57
Отправитель: Bob Johnson


 Вопрос № 1860

Отвечает Bob Johnson
Приветствую Вас, Алексей!
Ок, попробую написать задания на основе тех программ.
1. Дана строка символов (в конеце - 0). Посчитать общее число бит равных 1 в этой строке и найти номера символов строки, в которых (при двоичном представлении) встречается 4 единицы подряд.
2. Ввести с клавиатуры строку. Выделить из нее все числа и вывести на экран. Например, введено: 123лоло34434с5. программа должна вывести: 123, 34434, 5.
3. Организовать посимвольный ввод строки с клавиатуры. Если вводимый символ - латинская буква, отобразить ее на экране (в процессе ввода) один раз. Если русская буква - 2 раза, если цифра - 3 раза, иначе - 4 раза. По нажатию Enter вывести введенную строку без повторов и завершить работу программы.
4. Написать программу, осуществляющую ввод числа с клавиатуры и вывод его на экран в 16-й, 8-й и двоичной системах счисления. Выполнить контроль ввода и контроль переполнения.
5. Написать программу, которая будет последовательно вводить несколько строк текста с клавиатуры (до 40), сохраняя их во время ввода в стек и затем (по вводу пустой строки) выводить все введенные строки на экран в порядке их ввода (вариант 2 - в обратном порядке).
6. Написать программу, осуществляющую поиск подстроки в строке без учета регистра.

ПРИВЕТ НЕ МОГ БЫ ТЫ ПРИСЛАТЬ ЭТИ ИСХОДНИКИ МНЕ. ЗАРАН СПАСИБО.
evgen_@list.ru



Вопрос отправлен: 19.11.2002, 10:26
Отправитель: evgen (evgen_@list.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, evgen!
Да, хорошо, только я разве тебе их еще не выслал?
P.S. Наверняка тут уже тебе наругались, что можно персональные вопросы отправлять :-)


Ответ отправлен: 20.11.2002, 13:57
Отправитель: Bob Johnson


 Вопрос № 1861

Здравствуйте, уважаемые эксперты. Есть несколько вопросов. Пусть есть программа. У нее ты нажимаешь клавиши, например Ctrl. Как в SoftIce отловить нажатие клавиши? Почему иногда экран ICe не выводится на экран? Как это сделать. Как перехватить нажатие клавиши мыши? Это нужно сделать в окне soFtIce по Ctrl+D.
Заранее спасибо.



Вопрос отправлен: 19.11.2002, 14:13
Отправитель: Yevg (Sea84@Yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает CodeBuilder

Приветствую Вас, Yevg!
Попробуйте перехватывать сообщение WM_KEYDOWN и WM_CHAR
(поставте breakpoint На эти сообщения поставьте break point)
Нажатие_мыши - WM_LBUTTONDOWN/WM_RBUTTONDBLCK,WM_LBUTTONDBLCLK,WM_RBUTTONDOWN

Ответ отправлен: 19.11.2002, 23:21
Отправитель: CodeBuilder


Отвечает masquer

Приветствую Вас, Yevg!
Нажатие клавиш и движение мыши, равно как и нажатие любых клавиш генерирует сообщения, дальше твоя оконная процедура должна их отрабатывать. Соответственно твоя задача - узнать хендл окна (кнопка - это тоже окно), которое должно отрабатывать интересующее тебя сообщение и отловить само сообщение. Детали я уже раньше расписывал.

Ответ отправлен: 19.11.2002, 14:59
Отправитель: masquer


Отвечает Broken Sword

Приветствую Вас, Yevg!
Брейкпоинт на нажатие клавиши мыши:
ЛЕВАЯ КНОПКА:
BMSG дескриптор_окна WM_LBUTTONDOWN
ПРАВАЯ КНОПКА:
BMSG дескриптор_окна WM_RBUTTONDOWN
Брейкпоинт на нажатие клавиши клавиатуры (не системной):
BMSG дескриптор_окна WM_KEYDOWN
дескриптор_окна можно узнать через команду HWND


Ответ отправлен: 19.11.2002, 15:36
Отправитель: Broken Sword


 Вопрос № 1862

Проблема такова: убилась таблица разделов винта. Запускал Amithlon(хардверный эмуль Амиги), решил подключить к нему винт. Или я что-то неправильно сделал, или ещё чего, но это произошло…
Начал юзать PTS DiskEditor и Norton DiskEditor. В итоге узнал что: Амитлон записал мне в MBR свой амижный. Я начал копать дальше. Скопировал MBR с нормального винта на убитый. ОГО! Появился один раздел! Диск С стал доступен, причём ничего не потерялось! А он у меня был 5Gb из 40 (Seagate).
Теперь вопрос: как мне записать в таблицу разделов указатели на логические диски? Мне известен конец основного раздела, как вычислить следующий? Не знаю особенностей fdisk’а, но я разбивал в нём дополнительные разделы 50/50. Т.е. примерно по 17Gb.
Может кто сталкивался с такой проблемой? Как мне решить её?
Юзал прогу MRecovery XL – нифига не помогает. Говорит что нет фата. А как я понял (по первому разделу), что таблицы FAT все уцелели. Убилась только таблица разделов.
Существуют ли проги выдирания файлов с винта без таблицы (только не демо-версии, я их уже пробовал). Tiramisu, EasyRecovery, Lost & Found в инете нашёл только демо-версии. Кто-нибудь видел полные версии на компактах в продаже(ломаные)?
Реально попробовать воспользоваться пакетом Norton Utilites?
Поможите кто могёт! Если нет, то придётся винт форматить.



Вопрос отправлен: 19.11.2002, 14:26
Отправитель: BlastOff (blastoff@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Доброе время суток, BlastOff!
Вышли на мыло sensey@ukr.net дамп нулевого цилиндра, может с Артемом поможем...


Ответ отправлен: 19.11.2002, 18:44
Отправитель: Sensey


Отвечает ASMодей

Здравствуйте, BlastOff!
Не спеши форматировать винт, информацию вполне можно восстановить.
Насколько я понял, у тебя было два раздела: основной (размером 5Гб)
и дополнительный (с двумя логическими дисками по 17Гб). Ты пишешь,
что знаешь размер основного раздела - в это верится с трудом, потому
что MBR взят с другого винта, скорее всего ты знаешь примерный размер
раздела, а это мало что дает. Но даже не зная размер раздела, можно
найти начало следующего: дело в том, что по-умолчанию FDISK ставит
разделы с новой дорожки, так что просканировав все дорожки можно
найти BOOT-сектор второго раздела (по двум байтам в конце). А это даст
возможность вычислить начало второго раздела и размер первого. Ну
а дальше восстановить записи - дело DiskEdit'а.
Если нужно, могу написать программку для сканирования (пиши на
newgene@mail.ru).


Ответ отправлен: 19.11.2002, 17:58
Отправитель: ASMодей


Отвечает masquer

Приветствую Вас, BlastOff!
Попробуй EasyRecovery Pro 6 от Ontrack.

Ответ отправлен: 19.11.2002, 15:06
Отправитель: masquer


Отвечает Broken Sword

Приветствую Вас, BlastOff!
Если действительно запоролась ТОЛЬКО MBR, то ее можно впринципе восстановить руками из WinHEX.
Ты говоришь, что восстановился диск C. Т.е. восстановились 16 байт по смещению 1BEh от начала MBR. Теперь у тебя два дополнительных раздела. Первому соответсвуют 16 байт по смещению 1CEh, а второму - 16 байт по смещению 1DEh.
Структура этих 16 байт (т.е. какой байт что означает) - это чисто справочная информация. Теперь тебе нужно заполнить их руками; так что прикинь номер цилиндра и номер сектора, с которых начинается раздел, размер раздела, и т.п. штуки. Это вполне реально все посчитать, имея на руках размер первого раздела и WinHEX.
Теперь я еще не совсем понял: ты разбил оставш. часть на 2 раздела, или на два логич. диска? Если на логич. диски, то инфа о них хранится уже не в MBR, а в SMBR (у каждого логич. диска в доп. разделе своя)

Ответ отправлен: 19.11.2002, 15:36
Отправитель: Broken Sword


Отвечает Bob Johnson

Приветствую Вас, BlastOff!
Этот твой эмулятор должен был сохранить твой оригинальный MBR - посмотри, может найдешь - тогда просто верни его на место. Все должно получиться.
У меня один знакомый как-то экспериментировал с boot-manager'ами - тоже убил себе MBR (как я понял), у него получилось восстанавливать файлы tiramisu, но потом он запустил обычный NDD (виндовский) и тот ему сказал, что у него не все впорядке с таблицами разделов - предложил поискать их по диску - поискал и нашел...
P.S. Если ты скопировал MBR с другого диска, который был по другому разбит, то у тебя появится только primary partition (о которой запись находится непосредственно в MBR). Дальше таблица разделов продолжается в том месте, где у тебя заканчивается primary partition - там начинается extended partition (о которой также есть запись в MBR (но, если MBR с дргугого диска, то вот тут получится фигня)) и т.д. Так что можно и DiskEdit'ом править.


Ответ отправлен: 20.11.2002, 13:57
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (41)
C / C++ (28)
Perl (8)
Delphi (13)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (13)
PHP (9)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (22)
"Железо" (27)
Поиск информации (17)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (2)
Трудовое право (3)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное