Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 700
от 26.02.2004, 12:21
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5000 Отправлено ответов: 13880 Активность: 277.6 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Foamplast Статус: Опытный Общий рейтинг: 171.83 URL: мой личный сайт [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 105.87 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 106.88 URL: Мой сайтик... [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 134.95 URL: Super Assembler Software Телефон: Пчёлка +7 905 6601206 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 144.37 URL: Программирование [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 117.83 [Подробней >>] |
SedHg Статус: Опытный Общий рейтинг: 112.99 [Подробней >>] |
VOVAN Статус: Доверительный Общий рейтинг: 106.45 [Подробней >>] |
St Статус: Профессиональный Общий рейтинг: 105.33 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.62 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 110.13 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 4971. Уважаемые эксперты столкнулся с проблемкой есть в ICMP.dll API функция IcmpSendEcho , а у нее есть... (ответов: 2)
Вопрос № 4972. для Foamplast: честно говоря я в замешательстве, это что за стиль программирования такой? я только П... (ответов: 1)
Вопрос № 4973. Есть проект на masm ( один файл с исходным текстом и файл ресурсов ), где ( как и у большинства... (ответов: 3)
Вопрос № 4974. Уважаемые эксперты! Если при запуске проге не будет хватать памяти для размещения кода, будет ли уре... (ответов: 2)
Вопрос № 4976. Здравсвуйте, уважаемые эксперты! Вы, видимо не поняли мой вопрос (про курсоры для мыши). Я хочу сдел... (ответов: 1)
Вопрос № 4977. Здравствуйте уважаемые эксперты. Уточняю вопрос №4967 "...как организовать в программе отслежив... (ответов: 1)
Вопрос № 4978. Здраствуйте уважаемые эксперты. У меня к вам вопрос не напрямую связанный с Assemblerом, но все же я... (ответов: 1)
Вопрос № 4980. Добрый вечер всем. Это не вопрос, но эта информация может быть полезна для вас и читателей, отправьт... (ответов: 1)
Вопрос № 4981. Уважаемые господа Эксперты. Есть задача - определение состава железа, т.е. модель материнки,проца, ... (ответов: 2)
Вопрос № 4982. Доброго времени суток! Давным давно я неплохо писал программы в ASM'е ZX-SPECTRUM, и хотел бы сейчас... (ответов: 2)
Вопрос № 4983. Это не вопрос, а ответ на мой же вопрос под №4937 про определение адреса образа базы user32: оказыва... (ответов: 1)
Вопрос № 4984. Как работать с MS-DOS под Windows XP.У меня программы на Assemblere не пашут.... (ответов: 2)
Вопрос № 4985. Здраствуйте, Уважаемые эксперты! Вот написал програму по книжке для ввода текста и записи введённого... (ответов: 2)
Вопрос № 4986. Как можно получить полноценный DOS под Windows XP,потому что у меня не одна программа не работает. ... (ответов: 1)
Вопрос № 4987. хайте эксперты, может кто подскажет, как получить handle от всех однотипных элементов, например, от ... (ответов: 3)
Вопросов: 15, ответов: 25
Вопрос № 4971 |
Уважаемые эксперты столкнулся с проблемкой есть в ICMP.dll API функция IcmpSendEcho , а у нее есть 2 интересующих меня параметра 5 и 6 , я нашел какой то пример в инете там они называются RequestOptns,ReplyBuffer сам пример на делфи , согласно ремаркам это две структуры ICMPECHO и IPINFO не могу их нормально определить для свой програмки на ассемблере , у кого нибудь есть готовый пример описания этих структур и возможно даже пример использования этой функции на ассемблере,
Заранее благодарен...
Вопрос отправлен: 20.02.2004, 09:48
Отправитель: greg
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Добрый день, greg!
Структура IP_OPTION_INFORMATION определена так:
{
UCHAR Ttl;
UCHAR Tos;
UCHAR Flags;
UCHAR OptionsSize;
PUCHAR OptionsData;
}
А ICMP_ECHO_REPLY так:
{
IPAddr Address;
ULONG Status;
ULONG RoundTripTime;
USHORT DataSize;
USHORT Reserved;
PVOID Data;
IP_OPTION_INFORMATION Options;
}
Принимая во внимание, что UCHAR - это byte, PUCHAR - это указатель (они все Dword в 32-битной винде), IPAddr - это Dword, ULONG - это Dword, USHORT - это Word, PVOID - указатель и IP_OPTION_INFORMATION - вышеопределённая структура целиком, можно определить эти структуры для любого ассемблера.
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Отвечает Gibbel
Доброе время суток, greg!
А в MSDN лень было заглянуть??? ;-)
DWORD IcmpSendEcho(
HANDLE IcmpHandle,
IPAddr DestinationAddress,
LPVOID RequestData,
WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer,
DWORD ReplySize,
DWORD Timeout
);
typedef struct ip_option_information {
UCHAR Ttl;
UCHAR Tos;
UCHAR Flags;
UCHAR OptionsSize;
PUCHAR OptionsData;
} IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION;
typedef struct icmp_echo_reply {
IPAddr Address;
ULONG Status;
ULONG RoundTripTime;
USHORT DataSize;
USHORT Reserved;
PVOID Data;
IP_OPTION_INFORMATION Options;
} ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY;
Ответ отправлен: 20.02.2004, 10:23
Отправитель: Gibbel
Вопрос № 4972 |
для Foamplast:
честно говоря я в замешательстве, это что за стиль программирования такой?
я только Питера Абеля читал и Зубкова чуть чуть
что за .name? это метки такие а круглые скобки, вместо квадратных?
и всем спасибо, и как я сам не догодался про вторую строку :)
Вопрос отправлен: 20.02.2004, 10:14
Отправитель: очень хочу научиться
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Приветствую Вас, очень хочу научиться!
Так как мне никакие существуюшие стили не нравятся, я использую свой. В будущем, возможно, напишу среду разработки, где этот стиль будет изначальным.
.name - это просто в nasm локальная метка
Пример:
proc1:
.exit
proc2:
.exit
Теперь мало того, что одноимённые метки .exit не пересекаются, ещё и определены метки proc1.exit и proc2.exit. Все, кто когда-нибудь писал мало-мальски большие проекты (больше 50Kb исходник), должны это оценить.
А memory(object) у меня равносильно [object],
потому что в строках типа
HeapFree([hHeap], Ebx, [lpActions]);
мне сочетание круглых и квадратных скобок не нравится.
(из соображений дизайна)
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Вопрос № 4973 |
Есть проект на masm ( один файл с исходным текстом и файл ресурсов ), где ( как и у большинства ) имеются процедуру ( функции ), некоторые из которых занимают много строк.
Пользуюсь редактором redasm, позволяющим сворачивать блок текста, относящийся к одной функции ( блоку .data, .data?, .const и т.д. ), что очень удобно при просмотре и редактировании текста.
Для компиляции проектов написал универсальный батник ( типа: make.bat name_proj.asm )
Сама проблема ( или скорее неудобство ) заключается в том, что большой проект компилится долго. Хотелось бы реализовать следующее: отдельно компилить доведенную до ума процедуру или функцию в *.obj, а затем в проекте ссылаться на этот файл без необходимости редактирования make.bat
Например:
include\'ы
.data
.code
.start
main proc
что-то делаем
include function, par1, par2, par3
что-то делаем дальше
выход
main endp
типа include function.obj
.end start
Можно ли реализовать что-либо подобное и если да, то как сделать function.obj ( с использованием глобальных переменных и передаваемыми параматрами ) ?
Вопрос отправлен: 20.02.2004, 12:09
Отправитель: Ilya
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Приветствую Вас, Ilya!
Задача более чем известная. Для этой цели придумана утилита make, входящая в tasm и другие компиляторы. Вы пишете makefile, а потом только запускаете make в директории с проектом. В makefile вы описываете какие файлы из каких должны строиться, с помощью каких программ, и какой файл является целевым. make проверяет даты исходных и целевых файлов, и в случае необходимости перекомпилирует то, что нужно. Подробнее за описанием синтаксиса makefile смотрите в документации на make. В крайнем случае, не найдете - пишите мне на portnov at mgn ru, у меня где-то валялось. Синтаксис от версии к версии может немного отличаться, но стандартом является GNU make, которая поставляется с другими GNU-шными компиляторами (gcc, gpc, fpc...).
С уважением, Portnov.
Ответ отправлен: 21.02.2004, 15:39
Отправитель: Portnov
Отвечает Foamplast
Добрый день, Ilya!
Я заинтересовался очень, а какое время у тебя занимает компиляция проекта? Приведи, пожалуйста конкретные значения
(общий размер исходников в Кб и время компиляции).
А то у меня самые крупные коммерческие проекты больше 1 с не компилировались никогда... (у меня Athlon 600 Mhz)
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Отвечает Евгений Иванов
Приветствую Вас, Ilya!
includelib *.obj
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 20.02.2004, 22:59
Отправитель: Евгений Иванов
Вопрос № 4974 |
Уважаемые эксперты! Если при запуске проге не будет хватать памяти для размещения кода, будет ли урезаться область стека и др. области для освобождения памяти или об этом надо заботиться самому?
Вопрос отправлен: 20.02.2004, 12:14
Отправитель: Pirat
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Pirat!
Если не будет хватать памяти для кода, то она будет выделена их другой области (т.е. стек, и т.п.). Так что не стоит беспокоиться об этом.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 20.02.2004, 17:37
Отправитель: Bob Johnson
Отвечает Foamplast
Приветствую Вас, Pirat!
Назови процессор, операционную систему и тип исполняемого файла. Например, Atmel AT90LS8535 имеет раздельные пространства кода и данных, т.е. там точно ничего не урежешь.
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Вопрос № 4976 |
Здравсвуйте, уважаемые эксперты! Вы, видимо не поняли мой вопрос (про курсоры для мыши). Я хочу сделать программу, аналогичную main.cpl в панели управления или Microangelo. То есть я хочу поменять курсор не только в окне моей программы, а ВООБЩЕ везде. Я подумал, что это можно сделать где нибудь в реестре. RegShot обнаружил место HKEY_CURRENT_USER/Control Panel/Cursors. Смена значений ни к чему не привела( хотя контрольная панель показывала после смены то, что в реестре, а не то, что на самом деле). Может быть, что можно сделать, перехватив API LoadCursor, но тогда процесс постоянно должен быть в памяти и смена произойдет не сразу. Что делать,
Вопрос отправлен: 20.02.2004, 17:17
Отправитель: PRO (admin@smallsoft.net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Здравствуйте, PRO!
Можно так сделать. Сижу сейчас, пишу ответ, а курсор мыши рядом в виде крестика какого-то.
См. приложение. (Оно под nasm, общий смысл поймёшь)
Приложение:
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Вопрос № 4977 |
Здравствуйте уважаемые эксперты. Уточняю вопрос №4967 "...как организовать в программе отслеживание обращения к портам другими программами, как это делают операционные системы?" - обращение к портам ввода-вывода процессора.
Вопрос отправлен: 20.02.2004, 19:56
Отправитель: Angel
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Доброе время суток, Angel!
Скорее всего никак.
Возможность обращения к порту вода-вывода в защищённом режиме конролируется специальной картой ввода-вывода, где показывается, к каким портам можно обращаться, а к каким - нет.
При этом если процессор находится в режиме V86, то при обращении к запрещённому порту (соответствующий бит равен 1) происходит исключение #GP (общая ошибка защиты). За счёт этого эмулятор DOS может понять, что программа обращается к порту, и выполнить соответствующие действия, т.е. "прикинуться" устройством.
А в нормальном защищённом режиме, похоже, ничего не происходит. В документации от Intel я ничего не нашёл.
Ответ отправлен: 21.02.2004, 02:32
Отправитель: Foamplast
Вопрос № 4978 |
Здраствуйте уважаемые эксперты. У меня к вам вопрос не напрямую связанный с Assemblerом, но все же я прошу помочь если не сложно. Недавно “закончил” писать свой собственный Acommander (наподобие Norton Commander), который работает под ДОСом и теперь хочу добавить возможность работы с NTFS. Если укого есть описание на русском NTFS (или кто может знает ссылку) просьба скинуть на e-mail – slwy@yandex.ru
Вопрос отправлен: 20.02.2004, 19:52
Отправитель: wander
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, wander!
Копай в сторону http://www.sysinternals.com. А вообще, проще использовать внешний драйвер NTFS - с того же сайта.
--- E-Man 1.5+ : Sorry for terrible english. My native language is C++
Ответ отправлен: 22.02.2004, 00:53
Отправитель: _vt
Вопрос № 4980 |
Добрый вечер всем.
Это не вопрос, но эта информация может быть полезна для вас и читателей, отправьте в рассылку, пжлст.:
Здесь находятся нормальные SoftICE 4.05 для NT и 9x, и еще к тому же есть инсталляторы SoftICE 4.2.7, выдранного из DriverSuite 2.7 для Win9x и NT (то есть здесь лежит не сам DS, а только Sice'ы из него), примерно по 2.5MB каждый и к тому же патчи и тулзы.
http://reversing.kulichki.net/files/debug/debug.htm
Вопрос отправлен: 21.02.2004, 13:08
Отправитель: Marouder (marouder@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает SedHg
Доброе время суток, Marouder!
>>reversing.kulichki.net
Кто же этого адреса не знает =).
Ответ отправлен: 22.02.2004, 11:34
Отправитель: SedHg
Вопрос № 4981 |
Уважаемые господа Эксперты. Есть задача - определение состава железа, т.е. модель материнки,проца, видео и т.д. Желательно аппаратно (прошитые коды идентификации производителя) либо из реестра. Очень нужна информация по данному вопросу. Подскажите где копать. (Лопата уже есть). Заранее благодарен.
Вопрос отправлен: 21.02.2004, 13:57
Отправитель: Artem (shavkutin_a@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Приветствую Вас, Artem!
Можно выделить два метода определения состава оборудования:
1. Специфические действия для каждого типа устройства
Для Центрального Процессора - Команда cpuid
Для видеоадаптера - получение информации через VESA
Для накопителей на жёстких дисках - их опрос через порты (IDE)
И т.п.
2. Получение информации по стандарту plug-and-play
Если хочешь, откопаю свои исходники (на NASMе) и пришлю.
Ответ отправлен: 22.02.2004, 00:31
Отправитель: Foamplast
Отвечает _vt
Доброе время суток, Artem!
Копай на сайтах производителей железа. Модель процессора и его специфицеские возможности определяются инструкцией cpuid, остальное - ищи сам :-)
--- E-Man 1.5+ : Sorry for terrible english. My native language is C++
Ответ отправлен: 22.02.2004, 00:53
Отправитель: _vt
Вопрос № 4982 |
Доброго времени суток!
Давным давно я неплохо писал программы в ASM'е ZX-SPECTRUM, и хотел бы сейчас разобраться с PC'шным. Подскажите где можно взять необходимую для этого информацию.
Зарание благодарен.
Вопрос отправлен: 21.02.2004, 14:03
Отправитель: MoЯph (_1981_@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Добрый день, MoЯph!
Лучше книги С.В. Зубкова "Ассемблер для DOS, Windows и UNIX" пока ещё ничего не видел.
Купи её, она продаётся. Электронные варианты, которые я скачивал, все неполные.
Ответ отправлен: 22.02.2004, 00:34
Отправитель: Foamplast
Отвечает SedHg
Добрый день, MoЯph!
Приличное количество книг и инфы есть на asm.shadrinsk.net.
Так же советую зайти на src.fitkursk.ru, там много исходников.
Ответ отправлен: 22.02.2004, 11:49
Отправитель: SedHg
Вопрос № 4983 |
Это не вопрос, а ответ на мой же вопрос под №4937 про определение адреса образа базы user32:
оказывается если не используешь ни одной функции из этой библиотеки (User32 да и с другими также), то она не отображается на твое адресное пространство... от того и получался ноль... стоило только добавить в проект функцию MessageBoxA так сразу все заработало.
Мне кажется это интересным.
Вопрос отправлен: 21.02.2004, 15:32
Отправитель: akvilon
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Добрый день, akvilon!
А зачем отображать библиотеку на твоё пространство, если ты ей не пользуешься? Ведь если ей никто не пользуется, то она и в памяти не загружена.
Можешь вызывать LoadLibrary, когда тебе надо загрузить библиотеку.
Ответ отправлен: 22.02.2004, 00:37
Отправитель: Foamplast
Вопрос № 4984 |
Как работать с MS-DOS под Windows XP.У меня программы на Assemblere не пашут.
Вопрос отправлен: 21.02.2004, 19:01
Отправитель: Andrew (Superprogrammozg@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Приветствую Вас, Andrew!
У меня Windows Xp нет, но предполагаю, что и не должны пахать. Поставь себе DOS и работай.
Ответ отправлен: 22.02.2004, 00:46
Отправитель: Foamplast
Отвечает _vt
Доброе время суток, Andrew!
Напиши, что конкретно не пашет. Так вопросы не задаются.
--- E-Man 1.5+ : Sorry for terrible english. My native language is C++
Ответ отправлен: 22.02.2004, 00:53
Отправитель: _vt
Вопрос № 4985 |
Здраствуйте, Уважаемые эксперты!
Вот написал програму по книжке для ввода текста и записи введённого текста в файл, сначала она у меня нормально всё делала, но я чё то исправил, уже сам не могу понять чего и теперь она не хочет воспринимать символы "0dh, 0ah", я несколько раз всё проверил и не могу понять в чём дело, подскажите в чём моя ошибка? Программа должна записать введёные слова в файл...но каждое слово..с новой строчки!
Заранее большое спасибо!
Приложение:
Вопрос отправлен: 22.02.2004, 01:57
Отправитель: Антон
[Следующий вопрос >>] [Список вопросов]
Отвечает VOVAN
Приветствую Вас, Антон!
после компиляции приложения и его проверки было замечено, что по заданному пути отсутствовал заданный в проге файл, после чего была найдена ошибка!!!(см. приложение).
после её исправления запись в файл происхдила нормально, то есть вся белиберда получилась из-за отсутствия слеша.
Приложение:
Ответ отправлен: 22.02.2004, 13:42
Отправитель: VOVAN
Отвечает St
Привет, Антон!
У меня вроде все работает, единственное - в файл записываются строки включая пробелы до 20 знаков. Можно наверное дописывать 0ah,0dh после последнего введенного знака - экономия дискового пространства :)
St
Ответ отправлен: 24.02.2004, 13:05
Отправитель: St
Вопрос № 4986 |
Как можно получить полноценный DOS под Windows XP,потому что у меня не одна программа не работает.
Вопрос отправлен: 22.02.2004, 11:08
Отправитель: Andrew
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Доброе время суток, Andrew!
"Полноценный" DOS под XP можно получить, установив либо Microsoft Virtual PC, либо VMWare Workstation. Но и без них можно вполне настроить DOS для большинства программ. Какие конкретно проблемы? Что значит "не работает"?
--- E-Man 1.5+ : Sorry for terrible english. My native language is C++
Ответ отправлен: 24.02.2004, 14:21
Отправитель: _vt
Вопрос № 4987 |
хайте эксперты,
может кто подскажет, как получить handle от
всех однотипных элементов, например, от всех окон или
от всех button's? и каким образом лучше хранить в
памяти массив этих handle?
Вопрос отправлен: 22.02.2004, 12:11
Отправитель: Zensor (ZASM@MAIL.RU)
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Здравствуйте, Zensor!
Все окна верхнего уровня (главные окна приложений) можно перечислить с помощью функции EnumWindows().
Всех потомков определённого окна можно перечислить с помощью функции EnumChildWindows().
Так как про ограничения в MSDN ничего не сказано, смею предположить, что с помощью вызова EnumWindows() и последующих вызовов EnumChildWindows() можно перечислить все окна в системе.
Для того, чтобы перечислить все кнопки или, там, полосы прокрутки необходимо сделать всё вышесказанное и проверять класс каждого полученного окна на соотвествие искомому.
Лично я хранить одномерные массивы handle'ов предпочитаю в виде их простой последовательности в памяти, завершающейся нулём.
Ответ отправлен: 23.02.2004, 03:55
Отправитель: Foamplast
Отвечает vitya
Добрый день, Zensor!
Все окна можно получить через EnumWindows и EnumChildWindows.
Ответ отправлен: 23.02.2004, 08:26
Отправитель: vitya
Отвечает Dark_Lord
Добрый день, Zensor!
1) Button это тоже окно
2) Для перечисления всех окон можно использовать функцию EnumWindows
Ответ отправлен: 23.02.2004, 17:12
Отправитель: Dark_Lord
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (28) C / C++ (18) Perl (3) Builder / Delphi (20) Pascal (21) Basic / VBA (10) Java / JavaScript (3) PHP (13) Криптография (7) WinAPI (12) Радиоэлектроника (8) |
Пользователю Windows 95/98/Me (38) Windows NT/2000/XP (58) "Железо" (33) Поиск информации (15) |
Администратору Windows NT/2000/XP (31) Linux / Unix (12) |
Юристу Гражданское право (16) Семейное право (11) Трудовое право (12) КоАП (10) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||