Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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 |
Отписаться
Убрать рекламу |
В избранное | ||