Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 284
от 08.06.2002, 02:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 362 Отправлено ответов: 985 Активность: 272.0 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
AnSim Статус: Доверительный Общий рейтинг: 118.81 [Подробней >>] |
Gibbel Статус: Доверительный Общий рейтинг: 109.43 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 163.22 [Подробней >>] |
DiGiT Статус: Профессиональный Общий рейтинг: 145.53 [Подробней >>] |
igorash Статус: Опытный Общий рейтинг: 141.61 [Подробней >>] |
Александр Статус: Опытный Общий рейтинг: 121.06 [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 130.93 URL: Пристанище неодинокого программиста [Подробней >>] |
kvINT Статус: Доверительный Общий рейтинг: 112.31 [Подробней >>] |
v4D Статус: Доверительный Общий рейтинг: 113.27 [Подробней >>] |
Евгений Статус: Опытный Общий рейтинг: 115.28 [Подробней >>] |
UFO Статус: Опытный Общий рейтинг: 121.42 [Подробней >>] |
Тorax Статус: Доверительный Общий рейтинг: 116.43 [Подробней >>] |
Alex Статус: Начальный Общий рейтинг: 104.82 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 295. Hello профи! Помогите, плиз, кто чем может. 1. Как можно на асме реализовать многопотоковый код? 2. ... (ответов: 6)
Вопрос № 296. Уважаемые эксперты. Чем отличается сегмент объявленный как PRIVAT от сегмента объявленного как PABLI... (ответов: 4)
Вопрос № 297. Здраствуйте эксперты! Предположим мне нужно построить декартовую систуму кординат на плоскости с авт... (ответов: 3)
Вопрос № 299. Господа эксперты! Не подскажете, как работать с com-портом под win2000, а то злобный препод заставля... (ответов: 3)
Вопрос № 300. NT:Как обрабатывать исключения,когда переход из ring-3 в ring-0 был осуществлен в моей программе чер... (ответов: 2)
Вопрос № 301. Masquer – вышли реализацию на MMX пожалуйста From Stas ... (ответов: 1)
Вопрос № 302. Артём Шегеда- какой твой сайт скажи адрес пожалуйста И если тебе не трудно обьясни мне как построить... (ответов: 1)
Вопрос № 303. To masquer Прошу помочь в написании программы Программа получает матрицу Н*Н (Н не чётное и меньше ... (ответов: 1)
Вопрос № 304. Хотел загрузить нужную мне прогу при загрузки компа через autoexec.bat, но не хватает на неё основно... (ответов: 9)
Вопросов: 9, ответов: 30
Вопрос № 295 |
Hello профи! Помогите, плиз, кто чем может.
1. Как можно на асме реализовать многопотоковый код?
2. Как будет выглядеть исходный код приложения, использующего несколько потоков, после дизассемблирования?
3. То же самое, но под отладчиком?
4. Самый обычный кулер. И начал вдруг шуметь. Есть идеи? :) Сорри, за оффтопик.
Заранее спасибо. Рад любым ответам, идеям, предложениям и докам (по теме) - их можно смело кидать мне в ящик.
Вопрос отправлен: 03.06.2002, 00:52
Отправитель: TanaT (tanat@yes.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает AnSim
Добрый день, TanaT!
по кулеру - лопасти почисти, также м.б. разболтался
Ответ отправлен: 03.06.2002, 17:21
Отправитель: AnSim
Отвечает Gibbel
Приветствую Вас, TanaT!
1., 2., 3. - давай мыло - вышлю
4. Они всегда шумят))) Выкинь и купи новый - самый простой и дешевый вариант.
Ответ отправлен: 03.06.2002, 11:19
Отправитель: Gibbel
Отвечает masquer
Здравствуйте, TanaT!
1. Если под винды, то функция есть такая CreateThread. Под дос надо переходить в защищенный режим процессора. Как дальше - не знаю, есть там что-то, отвечающее за задачи - в книгах смотри.
2. Уверяю тебя, он будет выглядеть, как код после дизассемблирования. Разберись, как он получаеться, тогда не будет больше глупых вопросов.
3. См. п.2
4. Почисть.
Ответ отправлен: 03.06.2002, 08:35
Отправитель: masquer
Отвечает DiGiT
Здравствуйте, TanaT!
1) CreateThread если под виндой и не на асме, а используя сервис ОС.
2) Все зависит от отладчика и дебагера. Простые ничего не видят. А есть в которых можно переключать на код другого потока. В борландовских есть. Другие не юзал.
4) Смажь его
Ответ отправлен: 03.06.2002, 09:05
Отправитель: DiGiT
Отвечает igorash
Добрый день, TanaT!
4. 1.Снимаешь кулер с проца.
2. выкручиваешь вентилятор.
3. сзади или наклейка или сразу ось видна, если наклейка ее сдираешь
4. на ось капаешь масла желательно получше качеством, а не солидола
5. еще можно протереть от пыли
6. собираешь в обратном порядке, не забудь питание подключить кулера
Ответ отправлен: 04.06.2002, 11:45
Отправитель: igorash
Отвечает Александр
Доброе время суток, TanaT!
Я, как всегда не сразу, врубился в вопрос(тормоз, сразу видно). Поразмыслив я решил, что не готов ответить на вопрос 1, зато в ответе на вопросы 2 и 3 моё воображение нарисовало что-то вроде небольшой программы с приляпанными сбоку ВИНДАМИ.
1. Хотя если честно, то как всегда вызовом функции API, на сей раз CreateThread
4. Не тем кормишь, диету соблюлать надо. Вместо пыли, горячий китайский кулер просит смазки и хорошего вытяжного вентилятора, чтобы песочек в корпусе не задерживался. Вариант второй - подшипник сказал "не могу". Кулер надо либо менять как винды переустанавливать, либо тратить на его покупку один раз, но 30 долларов.
Приложение:
Ответ отправлен: 04.06.2002, 13:43
Отправитель: Александр
Вопрос № 296 |
Уважаемые эксперты.
Чем отличается сегмент объявленный как PRIVAT от сегмента объявленного как PABLIC?
Имеется ввиду как одноименные сегменты PRIVAT и PABLIC из разных модулей комбинируются.
Вопрос отправлен: 03.06.2002, 03:31
Отправитель: ivekm (ivekm@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Здравствуйте, ivekm!
Вот две программы.
Компилируем:
tasm /m3 /zi /la /a 1.ASM
tasm /m3 /zi /la /a 2.ASM
Линкуем:
tlink /3 /v /m 1+2
Загружаем:
td 1.EXE
Если dseg имеет атрибут PRIVATE, то дистанция между метками a1 и a3 (объявлены в разных модулях) вычисляется некорректно.
Если dseg имеет атрибут PUBLIC, то та же дистанция вычисляется правильно.
Интересно, зачем нужен атрибут PRIVATE? :/
Приложение:
Ответ отправлен: 03.06.2002, 12:40
Отправитель: Артём Шегеда
Отвечает kvINT
Доброе время суток, ivekm!
Вот как у Юрова (правда, он тут опять напутал, вместо private написал public):
"Данное значение атрибута комбинирования заставляет компоновщик объединить последовательно сегменты с одинаковыми именами. Все адреса и смещения будут вычисляться относительно начала этого нового сегмента. В этом случае не понадобится производить дополнительной настройки сегментных регистров"
В вызывающем модуле (private) настроить регистры надо.
Ответ отправлен: 05.06.2002, 21:42
Отправитель: kvINT
Отвечает masquer
Приветствую Вас, ivekm!
У сегментов - Private и Public? Чего-то я первый раз про такое слышу, может от жизни отстал. Private и Public директивы применяются для процедур и функций и определяют их видимость для внешних процедур.
Ответ отправлен: 03.06.2002, 08:48
Отправитель: masquer
Отвечает igorash
Здравствуйте, ivekm!
А тебя где писать учили???
Ответ отправлен: 04.06.2002, 11:42
Отправитель: igorash
Вопрос № 297 |
Здраствуйте эксперты!
Предположим мне нужно построить декартовую систуму кординат на плоскости с автомоштабированием и здвигом осей в соотвецтвии с данными кординатами. Как это реализовать, а точнее как выполнить сдвиг осей, с автомоштабированием я разобрался и вычислил коэфициент моштабирования, тае:
K (коэф. моштабирования) = Max (наибольшая точка по модулю) / H (высота той области экрана, куда я буду выводить изображение, (рахмерность экрана H*H)).
P.S. Всего наилучшего...!
Вопрос отправлен: 03.06.2002, 07:29
Отправитель: kuper
[Следующий вопрос >>] [Список вопросов]
Отвечает v4D
Доброе время суток, kuper!
Не понимаю, что здесь сложного, просто прибавляешь/отнимаешь соответствующие координаты осей.
Например, если надо сдвинуть влево, тогда надо прибавить с X-вой координате верхней и нижней точки оси Y соответствующее число.
Ответ отправлен: 04.06.2002, 23:11
Отправитель: v4D
Отвечает masquer
Добрый день, kuper!
Ты бы для начала русскому языку выучился, я даже дочитывать не стал после второго "моштабирования". Да и формулировать задачу, но это уже после...
Ответ отправлен: 03.06.2002, 08:44
Отправитель: masquer
Отвечает Александр
Добрый день, kuper!
Возвращаю тебе твой P.S. Ты прям загнул. Точка по модулю, это её расстояние до центра координат, поэтому у тебя картинка будет немного/много меньше чем область вывода. Смещение кого, куда и откуда? Ладно поехали делать твою работу - задавать начльные условия.
1) x0, y0 - левый верхний угол области отрисовки в экранных координатах.
2) x1, y1 - правый нижний.
3) xmin, xmax, ymin, ymax - cоответственно максимальные и минимальные координаты точек в нашей локальной системе координат.
Задача, найти коэффициент масштабирования K и координаты начала координат xc, yc.
Решение.
1) Коэффициент масштабирования.
KX=(xmax-xmin)/(x1-x0)
KY=(ymax-ymin)/(y1-y0)
Следуя логике общий коэффициент масштабирования K=max(KX, KY).
2) Смещение центра координат.
XC=x0-K*xmin
YC=y0-K*ymin
Да если ты отображаешь какой-нибудь кусок плоскости, в который координатный центр не входит, то точка (XC,YC) выходит за пределы прямоугольника (x0,y0)-(x1,y1) и могут выходить за пределы экрана вообще.
3) Для вычисления координат точки относительно левого угла необходимо использовать следующие формулы:
XA=XC+K*XL
YA=YC+K*YL, где XA, YA - координаты относительно экрана, XL и YL - относительно твоей системы координат.
P.S.
Я забыл, что в привычном нам мире ось Y растёт не вниз, как на мониторе, а вверх. Для этого надо изменить формулы следующим образом:
YC=y1+K*ymin
YA=YC-K*YL
P.S. За время пока я отвечал на этот вопрос два раза отрубали электричество, по 3 минуты. Слава Источникам Бесперебойного Питания! Гип-гип УРА!!!!!
Ответ отправлен: 04.06.2002, 13:44
Отправитель: Александр
Вопрос № 299 |
Господа эксперты!
Не подскажете, как работать с com-портом под win2000, а то злобный препод заставляет писать прогу для связи компа с at89s8252... А там только по последовательному порту можно...
Заранее спасибо!
Вопрос отправлен: 03.06.2002, 16:57
Отправитель: Morgion (morgion@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает AnSim
Доброе время суток, Morgion!
По моему спецдрайвер нужон из программерской библиотеки мелкософта
Ответ отправлен: 03.06.2002, 17:23
Отправитель: AnSim
Отвечает masquer
Здравствуйте, Morgion!
Скачай DDK для Вин2к - она правда весит больше 60Мб, но там можно не все качать, посмотри примеры, справку. Правда, если никогда раньше такого не делал, достаточно сложно - много знать надо. Ну и там на С++ все ориентировано.
Ответ отправлен: 04.06.2002, 10:35
Отправитель: masquer
Отвечает igorash
Здравствуйте, Morgion!
А тебе обязательно под виндой???
пиши в досе - просто шлешь в нужный порт и приимаешь из него и все
Ответ отправлен: 04.06.2002, 11:39
Отправитель: igorash
Вопрос № 300 |
NT:Как обрабатывать исключения,когда переход из ring-3 в ring-0 был осуществлен в моей программе через шлюз,те коммандой CALL XXXX:YYYYYYYY после чего код начинает выполняться уже в ring-0?
Приведенный кусок кода [без retf ест-но] будет правильно работать как в ring-3 обычная ситуация,так и в ring-0 если встроить его в драйвер.Эксперементально проверено.
Однако после callgate mov eax,[eax] мгновенно вызывает синий экран и никакие варианты SEH-обработчика просто не работают.Отсюда вывод:
- контроль ошибок должен осуществляться ф-иями ядра
- контроль ошибок осуществляется SEH который должен быть
предварительно инициализирован ф-ями ядра.
Вопрос:в чем прикол? Ввиду явной сложности вопроса сгодятся и ссылки кроме RTFM MSDN
Приложение:
Вопрос отправлен: 03.06.2002, 18:22
Отправитель: Death (mic@online.sinor.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений
Приветствую Вирмейкерам! (Я угадал? )
С NT такой фокус не пройдет - это тебе не win9x!
Ты не имеешь право вызывать callgate супервизора т.к. все системные функций, все ядро NT находится в страницах с меткой SUPERVISOR а твой вирус на этапе запуска - на ring3. ты не иммешь право:
- исполнять супервизорские страницы
- читать и писать супервизорские страницы
Для перехода из ring3 в ring0 используется другая уязвимость Windows NT.
Кстати, а что ты забыл в ring0 NT? VxD там нету, если не знал. С перехватом обращений к файлам там посложнее. Лучше добавляй новую import section в заражаемый файл,пиши туда APIs которые тебе потребуются, меняй адреса у API инфицированного файла, перехватывая обращения к сервисам и т д. Мороки немножко больше - зато результат хороший - Win32 compatible!
Ответ отправлен: 04.06.2002, 01:16
Отправитель: Евгений
Отвечает masquer
Здравствуйте, Death!
Я не совсем понял, где BSOD появляется, в 3-м или 0-м кольце, и под НТ или 9х. Насколько я знаю, "законных" способ перейти из 3-го в 0-е кольцо под НТ нет. В том же 29А расписаны переходы только под 9х. Под НТ они написали что работы ведутся или что-то в этом роде.
SEH здесь ни при чем, просто такой трюк под НТ не прокатит. В 29А они этим пользуются, но пишут в начале 95/98 compatible virus.
А вообще что ты хочешь этим добиться, это исследования или Klez какой-нибудь.
Ответ отправлен: 04.06.2002, 08:05
Отправитель: masquer
Вопрос № 301 |
Masquer – вышли реализацию на MMX пожалуйста
From Stas
Вопрос отправлен: 03.06.2002, 21:04
Отправитель: Stas
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, Stas!
Э-э-м, реализацию чего? Может, я пропустил что-то???
Ответ отправлен: 03.06.2002, 22:03
Отправитель: masquer
Вопрос № 302 |
Артём Шегеда- какой твой сайт скажи адрес пожалуйста
И если тебе не трудно обьясни мне как построить это макро
А то я не понял прислоное тобой решение
Вопрос отправлен: 03.06.2002, 21:06
Отправитель: Stas
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Добрый день, Stas!
Если задаёшь вопросы одному эксперту - сбрось флажок "Отправить вопрос всем экспертам выбранной рассылки".
Когда ты получил ответ эксперта, то внизу указываются личные данные - чтобы вопрошающий мог связаться, уточнить что-либо. В рассылке личные данные указаны в самом начале.
В моих личных данных указан мой сайт. Поскольку он расположен на Chat.RU, имеющий опыт работы в сети мог бы догадаться, что и mailbox расположен там же.
По поводу макроса... Построчно.
1. указывает на то, что далее будет описан многострочный макрос, принимающий один обязательный параметр - "N".
2-5. проверка на допустимость параметра (от 1 до 8). Если параметр вне допустимого диапазона, то генерируется сообщение об ошибке и работа макроса завершается.
6. временной переменной компилятора @@ShiftedOneValue присваивается строковое значение "1"
7-9. добиваем "хвост" нулями.
В результате получаем в переменной @@ShiftedOneValue единицу и нули.
10,15. организуется цикл, в котором наша единица сдвигается вправо.
11. справа наращиваем "b" - чтобы компилятор знал, что имеет дело с двоичным представлением числа.
12. резервируем байт и заносим в него числовое представление переменной @@ShiftedOneValue
13. отбрасываем уже ненужную литеру "b" и ноль
14. наращиваем слева "0" (эта операция, в принципе, не нужна).
В результате работы макроса получишь последовательность ячеек (байтов), которых размещены убывающие значения, равные степени числа 2. Для вызова ShiftedOneList 4 получишь 08h, 04h, 02h, 01h (1000b, 0100b, 0010b, 0001b)
Все эти манёвры выполняет только компилятор. Накакого машинного кода (за исключением последовательности инициализированных ячеек) сгенерировано не будет!
Comment. В моём предыдущем ответе некомпилируемый фрагмент кода - я там экспериментировал и отправил промежуточный вариант. В этом приложении приведён рабочий код
Приложение:
Ответ отправлен: 04.06.2002, 14:56
Отправитель: Артём Шегеда
Вопрос № 303 |
To masquer
Прошу помочь в написании программы
Программа получает матрицу Н*Н (Н не чётное и меньше
10)
Программа проверяет если полученная матрица является
полиндромом
матрица полиндром это матрица у которой линия середины
столбик середины и диоконали(diagonal) состовляют
эксодоцемальное число и его цифры состовляют полиндром
например : Н=3
4e 5d 11
b9 44 9b
11 b5 e4
большая просьба помочь в написании этой программки
и описать её написание как можно ясно
спасибо зарание
--------------------------------------------------------------------------------
Доброе время суток, Stas!
Эй, эй! У меня высшее образование, но вышку я сдал уже лет шесть назад, поэтому, чтобы у меня не развивался комплекс неполноценности и твоя проблема как-то решалась, напиши небольшой алгоритм, где все сведется до простых арифметических операции, и тебе проще будет, и нам. А то я в конспектах рыться не собираюсь.
Иначе вышлю тебе ****реализацию на MMX,**** работающую с такими матрицами, где все будет "ну очень просто и понятно".
Вопрос отправлен: 04.06.2002, 00:15
Отправитель: stas
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Приветствую Вас, stas!
У меня есть умножение матрицы на число, ну и еще парочка, с чем я не разбирался. Ты бы внимательно прочитал первую часть моего сообщения и выслал бы все в упрощенном виде, т.е. используя простые операции, сложение, умножение и т.д. и я наверное найду время и напишу. Т.е. ДАЙ МНЕ ТЕОРИЮ, а то я этого не помню.
Ответ отправлен: 04.06.2002, 08:25
Отправитель: masquer
Вопрос № 304 |
Хотел загрузить нужную мне прогу при загрузки компа через autoexec.bat, но не хватает на неё основной памяти (640КБ),
так как загружаются и другие проги. Что нужно для того (ключ, параметр), чтобы она грузилась в расширенную память (
которая соответственно свыше 1МБ).
PS: Драйвера расширенной памяти загружены.
Вопрос отправлен: 04.06.2002, 02:22
Отправитель: Speedy Gonsalez (kiselevo@mtu-net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает UFO
Доброе время суток, Speedy Gonsalez!
Свыше одного не получится, а так, стандартный ключ LH
Ответ отправлен: 04.06.2002, 04:37
Отправитель: UFO
Отвечает kvINT
Приветствую Вас, Speedy Gonsalez!
В Config.sys внеси строку DOS=HIGH или DOS=HIGH, UMB.
Это перенесет ядро DOS в верхнюю память. Также у драйверов там же замени DEVICE= на DEVICEHIGH=. Может быть у всех не получится, так перенеси в верхнюю хотя бы некоторые. Тогда обычной памяти станет значительно больше.
Да, чтобы это было позволено, перед DOS=... загрузи драйвера расш. и верхней памяти - DEVICE=C:...(где они там у тебя)HIMEM.SYS /TESTMEM:OFF и DEVICE=C:...EMM386.EXE NOEMS.
Ответ отправлен: 05.06.2002, 21:43
Отправитель: kvINT
Отвечает Тorax
Здравствуйте, Speedy Gonsalez!
Поставь lh перед путем к файлу.
Ответ отправлен: 04.06.2002, 18:58
Отправитель: Тorax
Отвечает Alex
Приветствую Вас, Speedy Gonsalez!
Если уже загружены HIMEM+EMM386 или QEMM, или другой менеджер памяти, то загрузить программу в UMB (область памяти между 640 и 1024 Кбайт) можно командой LH (LoadHigh). Пример:
LH KEYRUS
Это в случае, если хочешь загрузить программу из autoexec.bat, если же нужно загрузить драйвер в UMB, то применяется конструкция: DEVICEHIGH=
Возможно, тебе нужно загрузить все драйвера и другие программы в верхнюю память, а твою программу грузить в нижнюю. Но!!! будь осторожен и не переусердствуй...
А как загружать в расширенную память - не знаю.
Удачи!
Ответ отправлен: 04.06.2002, 08:11
Отправитель: Alex
Отвечает masquer
Доброе время суток, Speedy Gonsalez!
LH (Load High) YourProgramName - кажется так.
Ответ отправлен: 04.06.2002, 08:18
Отправитель: masquer
Отвечает Gibbel
Добрый день, Speedy Gonsalez!
LH (LOADHIGHT) Programm
Ответ отправлен: 04.06.2002, 10:20
Отправитель: Gibbel
Отвечает igorash
Добрый день, Speedy Gonsalez!
если обычно ты писал <имя_проги> <параметры> и т.д.
то надо написать
LH <имя_проги> <параметры> и т.д.
но это в верхнюю, а не в расширенную
Ответ отправлен: 04.06.2002, 11:37
Отправитель: igorash
Отвечает AnSim
Добрый день, Speedy Gonsalez!
А команду LH пробовал?
Ответ отправлен: 04.06.2002, 11:37
Отправитель: AnSim
Отвечает DiGiT
Приветствую Вас, Speedy Gonsalez!
Вроде команда LH
Ответ отправлен: 05.06.2002, 07:04
Отправитель: DiGiT
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (49) C / C++ (27) Perl (10) Delphi (15) Pascal (27) Basic / VBA (15) Java / JavaScript (8) PHP (8) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (48) Windows NT/2000/XP (34) "Железо" (39) Поиск информации (21) |
Администратору Windows NT/2000/XP (15) Linux / Unix (9) |
Юристу Гражданское право (11) Семейное право (5) Трудовое право (7) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||