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

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


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

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

Выпуск № 387
от 10.10.2002, 02:50

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


От Администратора



НАПОМИНАЮ!

Уважаемые читатели и эксперты!

26 октября, в субботу, планируется встреча посетителей сайта RusFAQ.ru. Было бы просто здорово, если бы мы могли собраться в разных городах в одно и то же время. Посему беру инициативу в свои руки и организовываю встречу в Москве. Эксперты и подписчики, живущие в других городах, могут написать мне письмо, в котором указать место встречи в их городе и время, а также иные условия (что и сколько с собой приносить, план и пр.). Я опубликую это в рассылке.
Для москвичей: планируется встреча 26 октября в 19:00 в метро Новогиреево (центр зала). В программе: пиво, закуска, караоке. С собой желательно взять 150-200 рублей (если можнете больше - хорошо). Двинемся в сторону Реутова (Новокосино, прибл. 10 мин. автобусом). Там есть хороший, недорогой, уютный бар. Кто едет со стороны Петушков - можем встретиться в центре платформы Реутово ИЗ Москвы. Если у кого есть другие предложения о месте проведения тусовки - пишите! Желающие принять участие, пожалуйста, напишите письмо в произвольной форме и отправьте по адресу admin@rusfaq.ru (обязательно укажите, где вы будете находиться: в метро или на платформе). Буду рад встретиться с экспертами.

Думаю, нам есть о чем поговорить!!!

Ваши мнения также на форуме: http://rusfaq.ru/cgi-bin/Forum.cgi?Action=ShowOpin&Number=65&Forums=All


Калашников О.А. (admin@rusfaq.ru)


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

Pablo
Статус: Профессиональный
Общий рейтинг: 131
URL: Моя страничка
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 125.63
URL: Страничка рассылки по Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Bob Johnson
Статус: Опытный
Общий рейтинг: 153.66
[Подробней >>]
 
Biv
Статус: Доверительный
Общий рейтинг: 117.62
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 114.34
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.15
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 156.27
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 132.31
[Подробней >>]
SonicX
Статус: Опытный
Общий рейтинг: 116.28
URL: Моя маленькая страничка с ассемблером.
Телефон: (0732)753724
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.17
URL: Страничка обо мне и моих друзьях
[Подробней >>]
St
Статус: Начальный
Общий рейтинг: 109.52
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 132.77
URL: моя рассылка по Protected Mode
[Подробней >>]


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

Вопрос № 1417. Всем привет Просто обалдел от дискуссии , которая разгорелась по вопросу 1328.(на другие бы так:)) З... (ответов: 5)
Вопрос № 1419. Уважаемые эксперты, помогите пожалуйста разобраться с EMS... Использую различные функции 67-го преры... (ответов: 1)
Вопрос № 1420. Здравствуйте ув-ые эксперты! Прошу прощения, если эти вопросы уже обсуждались, но перерывать всю рас... (ответов: 2)
Вопрос № 1421. Привет! А очередной раз поразился как Microsoft утаивает информацию о программировании под Винды! На... (ответов: 5)
Вопрос № 1422. ПРИВЕТ !!! Помоги чем сможеш! Я учюсь на 3-ем курсе университета (нескажу каково). Препод мне дал ку... (ответов: 6)
Вопрос № 1423. wuzzz up masters Вероятно многие из вас знают прилагу Lingvo 8.0 ME и сталкивались с MesBox'ом(если ... (ответов: 2)
Вопрос № 1424. Это не вопрос :) вам еще не надоели вопросы я вот решил начать так сказать изучение Ассемблера мо... (ответов: 4)

Вопросов: 7, ответов: 25


 Вопрос № 1417

Всем привет
Просто обалдел от дискуссии , которая разгорелась по вопросу 1328.(на другие бы так:))
Занимаясь долгое время цифровой радиоэлектроникой, могу сказать :ТОЛЬКО СЛОЖЕНИЕ
Все операциии и сдвиг и инверсия и исключение т.е. все , что делает процессор , на микроэлектронном уровне происходят через сложение
Например инверсия это сложение с 1 , если посмотреть на схему сдвиговово регистра то видно там тоже сложение
В общем , если нарисовать схему процессора в виде эл.схемы это будут многие миллионы сумматоров соединенные особым порядком .
А инструкции (Biv:)) просто от результата сложения электроны бегут либо туда , либо сюда :))
Спасибо за внимание
Nick
P.S. Спасибо Bob Johnson за ответ на мой вопрос, Kiss отдельное спасибо ( я просил средствами АСМа)



Вопрос отправлен: 05.10.2002, 05:39
Отправитель: nickolai (nickolai@mail.iks.ru)

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

Отвечает Pablo

Добрый день, nickolai!
Ну я думаю не слудует путать операцию сложение и операции прводимые на сумматоре, да действительно, что, например, сдвиги выполняются на сумматоре, но они не являются операцией сложения. Потом операции переходов вообще не требуют суммтора.
Если кто когда-нибуть делал процессор на основе меиропроессорного комплекта, то помнит это, а ведь почти во всех нынешних однокристальных микропроцессорах в основе имеенно такой принцип.

Ответ отправлен: 06.10.2002, 16:44
Отправитель: Pablo


Отвечает Sensey

Доброе время суток, nickolai!
Я вот тут проконсультировался с коллегами электронщиками, и вот что они мне сказали:
1. Существуют схемы умножителей, из серий 1800 1802 1804
2. Один из них сделал на 51 даже извлечение корня за 1 такт(табличным методом)...
То есть я так понял, что все можно представить через сложение, но есть гораздо более экономичные методы(схемы)
умножителей, сдвигателей и т.д.


Ответ отправлен: 05.10.2002, 15:56
Отправитель: Sensey


Отвечает Bob Johnson

Приветствую Вас, nickolai!
Подожди, как это: "если посмотреть на схему сдвиговово регистра то видно там тоже сложение"??? Я вообще-то считал, что сдвиговые регистры строятся на D или JK-триггерах... А как же сдвиг более чем на один разряд? Только триггеры и мультиплексоры... А логические операции? Вот никаким сложением ты AND не сделаешь...
Да и инверсию сложением делать не очень хорошо - потому что любой регистр хранения информации на выходе имеет триггер (обычно RS). У такого триггера всегда есть как прямой выход, так и инверсный - проще с инверсных выходов взять сигнал и получить операцию инверсии "просто так", т.е. без каких-либо вычислительных затрат...


Ответ отправлен: 06.10.2002, 15:23
Отправитель: Bob Johnson


Отвечает Biv

Добрый день, nickolai!
1) Вот что я хочу сказать по поводу "только сложения". Представлять, например, ту самую инверсию с помощью сложения неумно, для этого есть великлепная операция НЕ выполняемая на одном несчастном транзисторе.
2) Теперь, что касается фразы "А инструкции (Biv:)) просто от результата сложения электроны бегут либо туда , либо сюда :))". Не сочтите за грубость, но вас батенька, мотает из крайности в крайность - то у вас везде сложение, то вдруг электрончики бегают (может стоит переквалифицироваться в ядерные физики). Из курса проектирования БИС, можно вытянуть такую вещь - более менее простая модель работы процессора состоит из: считывания команды, дешифрации команды (что одновременно является путем к выбору действий, которые необходимо произвестьи, а также частю ответа на вопрос №1328), выполнении и т.д. в зависимости от остальных прибамбасов. Вот собственно и все что я хотел сказать в ответ на вашу реплику.
С уважением Biv.

Ответ отправлен: 07.10.2002, 19:18
Отправитель: Biv


Отвечает Beeblebrox

Доброе время суток, nickolai!
Ты заблуждаешься. Не только сложение. Это было бы слишком громоздко и неэффективно. Хотя несомненно, любую по сложности цифровую схему можно реализовать исключительно на элементах И-НЕ (или же ИЛИ-НЕ)

Ответ отправлен: 07.10.2002, 13:43
Отправитель: Beeblebrox


 Вопрос № 1419

Уважаемые эксперты, помогите пожалуйста разобраться с EMS...
Использую различные функции 67-го прерывания для получения информации о EMS, в самом начале использую фукцию 40H для получения статуса EMM и в случае ошибки прекращаю работу с EMS... Но дело в том, что всё работает из под различных версий Windows, а в DOS'e обращение к этому прерыванию приводит к зависанию... И помогите пожалуйста разобраться с DPMI - вызов различных функций 31-го прерывания приводит к зависанию... :-



Вопрос отправлен: 05.10.2002, 13:32
Отправитель: ManiaC

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

Отвечает Ayl

Доброе время суток, ManiaC!
Прежде чем вызывать прерывание 67h, надо проверить, что в системе есть драйвер с именем 'EMMXXXX0'. И только после этого вызывать прерывание 67h.
Просто этот вектор никуда не указывает, если нет драйвера. Соответственно, получаем бред.
Для DPMI сначала нужно вызвать прерывание 2fh, установив регистр в значение 1687h. При возврате AX должно быть равно 0000, что показывает возможность использования функций драйвера DPMI.


Ответ отправлен: 07.10.2002, 13:15
Отправитель: Ayl


 Вопрос № 1420

Здравствуйте ув-ые эксперты!
Прошу прощения, если эти вопросы уже обсуждались, но перерывать всю рассылку нет времени.
1) Работа с видео через LFB. Сам принцип я понял, но программа моего изготовления работать не хочет. Соответственно просьба - примерчик PutPixel'а.
2) Перемножение матриц (1*4)х(4*4) и (4*4)х(4*4). Вопрос про матрицы уже всплывал в рассылке, но вразумительного ответа на него не было. (или я что-то пропустил?)
3) Вопрос не в тему, но задать его больше некому. Во всех книгах по 3D графике формулы проецирования приводятся для стандартной камеры (0,0,-dist). Соответственно вопрос: как проецировать на произвольную камеру? Развернуть весь мир так, чтобы произвольная камера совпала со стандартной? Но тогда это должно ужастно тормозить...
Заранее спасибо!



Вопрос отправлен: 05.10.2002, 14:48
Отправитель: Dron_Gus (dron_gus_asm@pochtamt.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Dron_Gus!
2. А что тебя интересует в перемножении матриц? Берешь строку из первой матрицы и столбец из второй - умножаешь первый элемент строки на первый элемент столбца, второй элемнт строки на второй элемент столбца и т.д. Получаешь четыре числа, их просто складываешь. Полученную сумму записываешь на пересечении выбранной строки с выбранным столбцом в результирующую матрицу. Т.е. в матрице 16 элементов, поэтому необходимо будет произвести 16*4 = 64 операции умножения и 16*3 = 48 операций сложения. Если умеешь пользоваться SSE - тогда хватит 16 операций умножения (вот откуда и РЕАЛЬНЫЙ прирост скорости в 3Д приложениях от SSE).
В результате перемножения вектора 1х4 на матрицу 4х4 получишь тоже вектор 1х4. Правила такие же, как и при перемножении матриц - единственно возможную строку (т.е. сам исходный вектор) из первой матрицы и поочередно столбцы второй.
3. Да. Вот для этого и используются матрицы 4*4, потому что такая матрица одновременно может задавать транспонирование (перемещение), масштабирование и поворот вокруг трех осей. При этом тебе необходимо каждый вертекс умножить на заданную матрицу - получишь вертекс в новой системе координат.
Тормозить это не будет. Потому что как ни крути, но один раз тебе придется провести преобразование - для обеспечения проецирования. Если это преобразование тоже осуществлять с помощью матрицы, то можно перемножить матрицу преобразования на матрицу проецирования и получить одну матрицу, осуществляющую сначала преобразование, потом проецирование. Так работает 3D ускоритель. (не будем касаться вертексных шейдеров).
А тут уже сам посмотри - матрица проецирования у тебя всегда одна и та же. Матрица вида (т.е. положение камеры) изменяется один раз на кадр - это немного. Т.е. умножать их друг на друга надо будет только один раз на кадр.
А каждый вертекс у тебя состоит из четырех координат (x, y, z, w), т.е. для его обработки в общем случае понадобится только 4*4 = 16 умножений (или 4 при использовании SSE). Это не очень и много. Можно оптимизировать, т.к. w в исходном вертексе константа (не помню, то ли 0, то ли 1, или w = z, что хуже...)...


Ответ отправлен: 06.10.2002, 15:23
Отправитель: Bob Johnson


Отвечает Biv

Доброе время суток, Dron_Gus!
1) Написал бы програмку народ глянул бы.
2) А в чем вопрос?
3) А в чем разница между произвольной камерой и "стандартной"? В книгах не пишут о произвольной камере потому, что разницы нет. Ведь произвольную камеру можно представить как стандартную камеру, относительно которой все рисуемое, смещено и повернуто теми частями которые видны в произвольной камере (грубовато, но вроде как ясно), но это нужно учесть до того как расчитывать картинку (короче говоря, перейти в новую систему координат).
Тормозить это не будет.

Ответ отправлен: 06.10.2002, 20:21
Отправитель: Biv


 Вопрос № 1421

Привет!
А очередной раз поразился как Microsoft утаивает информацию о программировании под Винды!
Наверное вы знаете что при работе со скролбаром при протягивании за ползунок мышью посылаются messages WM_HSCROLL or WM_VSCROLL, которые показывают 16-битное представление позиции ползунка. В хелпе (win32.hlp) в функции GetScrollInfo так и написано: см 1) (в приложении). Там же написано что можно использовать 3 флага: SIF_PAGE, SIF_POS, SIF_RANGE.
Тут читаю (в электронном виде на английском) "PROGRAMMING WINDOWS 95" BY CHARLES PETZOLD - и оказывается что есть еще один флаг c помощью которого можно определить 32-битное положения ползунка: SIF_TRACKPOS - он упоминается только в английской версии книги - в файле c русским переводом этого куска текста нет (по крайней мере у меня). см 2) (в приложении).
Кто еще знает неточности в оффициальной документации? может поделитесь во избежании недоразумений!
St


Приложение:


Вопрос отправлен: 05.10.2002, 17:01
Отправитель: St (st23@yandex.ru)

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

Отвечает masquer

Приветствую Вас, St!
Попадалось мне что-то, сейчас не упомню что. Если хочешь - найди книги Эндрю Шульмана и Метта Питрека - фактически это справочники по неточностям виндов.

Ответ отправлен: 06.10.2002, 18:28
Отправитель: masquer


Отвечает Bob Johnson

Добрый день, St!
Просто не пользуйся Win32 Programming Referenceю (который идет вместе с дельфи или С билдером). Пользуйся MSDN.
У меня в файле помощи от С++ билдера 5 нет такого флага (хотя поле в структуре есть!), а вот в MSDN (January 2001) - все хорошо описано - и флаг и даже пример есть.


Приложение:

Ответ отправлен: 06.10.2002, 19:19
Отправитель: Bob Johnson


Отвечает Dark_Lord

Добрый день, St!
Пасибо за инфу, всегда рады!

Ответ отправлен: 05.10.2002, 22:42
Отправитель: Dark_Lord


Отвечает SonicX

Здравствуйте, St!
А кто тебе сказал, что MicroSoft сразу выложит все функции Виндов? Для чего по-твоему недокументированные функции?(для того чтобы никто кроме MicroSoft не мог писать крутые программы)

Ответ отправлен: 06.10.2002, 21:45
Отправитель: SonicX


Отвечает Gibbel

Здравствуйте, St!
Только что посмотрел официальную документацию от мелкософт - MSDN. Все флаги описаны.

Ответ отправлен: 07.10.2002, 10:12
Отправитель: Gibbel


 Вопрос № 1422

ПРИВЕТ !!!
Помоги чем сможеш!
Я учюсь на 3-ем курсе университета (нескажу каково).
Препод мне дал курсовую "Написать программу (Вирус) на Ассемблере, которая должна перехватывать нажатие клавиш на клавиатуре" тоесть если а нажму клавишу 'A' то программа долна пичатать другую букву.
Может кто то знает пару адресочков по програмировании на Ассемблере(прерывания клавиатуры), или подскажет как это зделать.
Буду рад любой помощи ?



Вопрос отправлен: 05.10.2002, 18:04
Отправитель: Сергей (Evil_@ukr.net)

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

Отвечает Bob Johnson

Здравствуйте, Сергей!
Ну ты и чувак - учишься в университете и пишешь "каково"...
Вопрос твой предельно ясен - скажу сразу, в свое время придумал т.н. "русификатор", который работает с клавиатурой и заменяет все введенные английские буквы на русские (ну, конечно, только те, начертания которых одинаковы) - т.е. "А", "О", "Е" и т.д. Получилось очень прикольно -"установил" его на компах и наблюдал, как люди пишут программу в паскале, а она ... не компилируется... Вот досада! (см. приложение).


Приложение:

Ответ отправлен: 06.10.2002, 19:19
Отправитель: Bob Johnson


Отвечает Dark_Lord

Добрый день, Сергей!
Перехватываешь IRQ9 а потом забираешь букву из буфера и кладёшь;) свою!

Ответ отправлен: 05.10.2002, 22:43
Отправитель: Dark_Lord


Отвечает St

Привет, Сергей!
Попробуйте поискать в инете книгу Джордэйна (он же Журден) Справочник программиста персонального компьютера - старая книга о программировании на Бэйсике и Ассемблере под Dos. Там была глава о работе c клавиатурой.
Например: http://alex-justasu.narod.ru/ или http://sources.fitkursk.ru/detail_book.asp?id=105 (пара адресочков)
В общем поищите любым "русским" поисковиком (yandex.ru или google.com)
St

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


Отвечает masquer

Доброе время суток, Сергей!
Русский язык выучи, а потом уже за ассемблер берись.
Вирусописатель, блин...
По прерываниям интлист Брауна ищи...

Ответ отправлен: 06.10.2002, 18:55
Отправитель: masquer


Отвечает Broken Sword

Здравствуйте, Сергей!
вешаешься на девятый вектор, читаешь в начале хендлера 60h порт и выводишь на экран другое значение. Вот и все. А в каком ты универе?

Ответ отправлен: 05.10.2002, 19:48
Отправитель: Broken Sword


Отвечает SonicX

Приветствую Вас, Сергей!
Насчет адресочков - что же ты не мог попробовать поискать например YANDEXом? Найдеш сколько твоей душе угодно. А как сделать подскажу. Надо перехватить 9 прерывание и в своем обработчике этого прерывания проверять, если это буква А, то она выводит на экран другую букву, если же нет то никакой самодеятельности.
PS Твоя программа-вирус должна оставаться резидентной.

Ответ отправлен: 06.10.2002, 21:45
Отправитель: SonicX


 Вопрос № 1423

wuzzz up masters
Вероятно многие из вас знают прилагу Lingvo 8.0 ME
и сталкивались с MesBox'ом(если нет, то в net'e есть описалово)
"Internal program error LigvoProtection.Cpp, 46"
(только если копия пиратская)
и если я не ошибаюсь эту проблему IMHO ещё никто ПОЛНОСТЬЮ не решил,
поэтому становится как-то интересно, что это
за защита такая и вообще возможно ли её сломать
(solution писать не прошу(т.к. я сам хочу это сделать),
но буду очень рад, если поделитесь любой info'й по этому q)



Вопрос отправлен: 05.10.2002, 18:56
Отправитель: cool_хацкер (luxes@mail.cityline.ru)

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

Отвечает Bob Johnson

Добрый день, cool_хацкер!
Ну ты же кулхацкер... Какие вопросы? Бери софт айс, bpx MessageBoxA... И в путь... А вообще - я сам видел это у себя на компе, когда ставил какой-то лингво. Мне кажется, сломать лингво не так уж легко... Попробуй что-нибудь попроще (если не уверен, что сможешь с лингвой) - например, 3DMark1999 Max.


Ответ отправлен: 06.10.2002, 19:19
Отправитель: Bob Johnson


Отвечает masquer

Здравствуйте, cool_хацкер!
Знают, сталкивались. Многоуровневая защита. В старых версиях ковырять нужно Fobj600.dll.
А вообще ее проще купить, чем ломать - времени можно убить достаточно, но так ни к чему не прийти.
Да и дискетки по инету найти можно...

Ответ отправлен: 06.10.2002, 19:04
Отправитель: masquer


 Вопрос № 1424

Это
не вопрос :)
вам еще не надоели вопросы
я вот решил начать так сказать изучение Ассемблера
может сделать FAQ ?



Вопрос отправлен: 05.10.2002, 19:55
Отправитель: Юра

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

Отвечает masquer

Добрый день, Юра!
На умные вопросы отвечать не надоедает, надоедаеть отвечать на общие вопросы и слишком часто повторяемые

Ответ отправлен: 06.10.2002, 18:24
Отправитель: masquer


Отвечает Dark_Lord

Здравствуйте, Юра!
Это не ответ!
А ты не боишься, что надоест ответы получать!?

Ответ отправлен: 05.10.2002, 22:45
Отправитель: Dark_Lord


Отвечает Bob Johnson

Добрый день, Юра!
Может быть... А вообще, была же идея создания книги из вопросов нашей рассылки - я вот только вчера задал сам вопрос по этому поводу, но пока ничего не получил в ответ.
Но ты знаешь, скорее всего ничего не получится - чтобы найти ответ на свой вопрос, человеку будет проще его задать снова, а не искать в груде FAQus. Потому что, для нахождения ответа самому нужно будет прочитать много вопросов и ответов FAQ, а когда есть возможность получить ответ проще... В общем, такой уж у нас менталитет.


Ответ отправлен: 06.10.2002, 19:19
Отправитель: Bob Johnson


Отвечает Biv

Приветствую Вас, Юра!
ВПЕРЕД!
Тебе флаг в руки!

Ответ отправлен: 06.10.2002, 19:49
Отправитель: Biv



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

Внимание!
Форма может работать некорректно в почтовых программах "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++ (30)
Perl (4)
Delphi (17)
Pascal (21)
Basic / VBA (10)
Java / JavaScript (10)
PHP (9)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (27)
"Железо" (33)
Поиск информации (14)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (4)

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




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

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


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

В избранное