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

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


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

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

Выпуск № 301
от 26.06.2002, 19:00

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


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

Broken Sword
Статус: Профессиональный
Общий рейтинг: 146.28
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 160.5
[Подробней >>]
vitya
Статус: Опытный
Общий рейтинг: 117.07
[Подробней >>]
 
Portnov
Статус: Опытный
Общий рейтинг: 159.09
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 120.38
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Guess Who
Статус: Доверительный
Общий рейтинг: 104.97
[Подробней >>]
 
Федос
Статус: Доверительный
Общий рейтинг: 119.17
[Подробней >>]
kvINT
Статус: Опытный
Общий рейтинг: 115.46
[Подробней >>]
igorash
Статус: Опытный
Общий рейтинг: 122.75
[Подробней >>]
 
Frank
Статус: Профессиональный
Общий рейтинг: 121.36
[Подробней >>]
Blackeye
Статус: Профессиональный
Общий рейтинг: 118.73
URL: Delphi, my programms...
[Подробней >>]
kostik
Статус: Профессиональный
Общий рейтинг: 116.28
URL: Все о программистах и для программистов
Телефон: (4212)393-276
[Подробней >>]


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

Вопрос № 500. Подскажите плиз самый быстрый способ узнать длину текстовой строки, оканчивающейся nulloм. WinAsm...... (ответов: 5)
Вопрос № 501. День добрый, господа эксперты ! Помню давно была хорошая оболочка для Аскмблера под Дос. Пытался най... (ответов: 3)
Вопрос № 502. Как правильно экспортировать dll-библиотеки с функциями в SoftIce. После того как прописал кое-какие... (ответов: 2)
Вопрос № 503. Здравствуйте!!! Кто нибудь имеет понятие как можно работать с компилятором DSL из пакета LINGVO. Я в... (ответов: 2)
Вопрос № 504. Уважаемые эксперты есть одна проблема ,подцепил не знаю где (асю может поставил) вредную такую вещь ... (ответов: 5)
Вопрос № 505. Посмотрите пожалуйста программу. Можно ли что-то улучшить или добавить? Программа предназначена для ... (ответов: 2)
Вопрос № 506. Доброго времени суток, господа эксперты. Кажется, мой вопрос неправильно поняли, я спрашивал, как ОП... (ответов: 1)
Вопрос № 507. Привет эксперты!!! Да нет же,есесно я догадался нажать на f1. DSL компилятор преобразует словарные ... (ответов: 1)
Вопрос № 508. Эксперты. Как никогда не задумывался , но вот сегодя столкнулся. Загружаю программу в отладчике AFDP... (ответов: 4)
Вопрос № 509. Может быть мой вопрос покажеться немного странным. Но...я пишу программу кнахождения квадратного ура... (ответов: 9)

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


 Вопрос № 500

Подскажите плиз самый быстрый способ узнать длину текстовой строки, оканчивающейся nulloм. WinAsm...



Вопрос отправлен: 21.06.2002, 19:36
Отправитель: DrGenius (drgenius@nm.ru)

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

Отвечает Broken Sword

Добрый день, DrGenius!
Это ламерский и далеко не "самый быстрый" способ, просто о нем ОЧЕНЬ мало кто знает: (оно в принципе и не нужно, но пусть будет, может кому и пригодится):
les di,string
mov ax,1212h
int 2Fh
..............
string db 'xxxxxxxxxxxxxxxxx',0

сx=string lenght
p.s. тока щас обратил внимание на WinAsm в конце твоего вопроса... ну ниче, все равно пусть будет... )
вот, кстати, полез в ральфа брауна в раздел 2Fh - там дохренища фич, о которых никто даже не подозревает....
(от compare filenames до get dos data), нада будет полазить...


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


Отвечает masquer

Доброе время суток, DrGenius!
Все зависит от того, какой длины строки ты предполагаешь мерять, ежели длиной до 1-2 Мб, то подойдети стандартный вариант
mov edi, offset buffer
xor eax, eax
mov ecx,-1
repnz scasb
not ecx
dec ecx - длина здесь
а ежели более, то MMX юзай. Примером пока кидать не буду.


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


Отвечает vitya

Приветствую Вас, DrGenius!
быстрее чем просто проходом не выйдет. просто по очереди смотри все значения строки пока не встретишь 0.

Ответ отправлен: 22.06.2002, 09:00
Отправитель: vitya


Отвечает Portnov

Приветствую Вас, DrGenius!
По-моему, так:
mov si,offset stroka
mov cx,0ffffh
looping:
lodsb
or al,al
jz str_end
loop looping
str_end:
not cx
;Теперь в CX - длина строки.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:06
Отправитель: Portnov


Отвечает baldr

Доброе время суток, DrGenius!
mov cx, 0FFFFh
mov di, offset stroka
mov al, 0
repne scasb

При выходе - DI указывает на конец строки... Вычитаешь из него смещение начала и все...
ES должен указывать на сегмент, в котором определена stroka.


Ответ отправлен: 23.06.2002, 00:48
Отправитель: baldr


 Вопрос № 501

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



Вопрос отправлен: 22.06.2002, 01:42
Отправитель: Skeleton (skeleton22@yandex.ru)

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

Отвечает Portnov

Добрый день, Skeleton!
Я некоторое время пользовался TurboShell. Наверняка она есть на сайтах вроде ListSoft.ru, Download.ru, Freeware.ru. Что интересно - написана на асме.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:08
Отправитель: Portnov


Отвечает Guess Who

Добрый день, Skeleton!
Хоть бы название дал. Я знаю, что есть TASMED и Turbo Assembler Shell. Где найти? Юзай поисковик.

Ответ отправлен: 22.06.2002, 13:21
Отправитель: Guess Who


Отвечает baldr

Здравствуйте, Skeleton!
http://darksawa.r2.ru/files/Tasmed.zip
TASMeD - очень удобная вещь... Скачай - оценишь... Только сразу совет: не запускай проги
из-под нее. Лучше выйди в DOS и там ручками запусти tasm... Или пиши мне - у меня уже
давно есть bat-файлик для компиляции асмовских файлов из Dos Navigator'а или Нортона...


Ответ отправлен: 23.06.2002, 00:48
Отправитель: baldr


 Вопрос № 502

Как правильно экспортировать dll-библиотеки с функциями в SoftIce. После того
как прописал кое-какие в winice.dat, SoftIce их всё-равно не грузит. Команда Exp
выводит стандартные kernel, user32 и.т.д, а моих нет.



Вопрос отправлен: 22.06.2002, 02:56
Отправитель: Speedy Gonsalez (kiselevo@mtu-net.ru)

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

Отвечает Portnov

Доброе время суток, Speedy Gonsalez!
Может оказаться, что не хватает памяти для символов. В настройках где-то задается этот объем. Попробуйте поставить побольше.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:09
Отправитель: Portnov


Отвечает masquer

Доброе время суток, Speedy Gonsalez!
Блин, ну точно FAQ создавать надо, я уже раз десять на этот вопрос отвечал - увеличь размер памяти под символы, если не понятно - справку читай!!!

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


 Вопрос № 503

Здравствуйте!!!
Кто нибудь имеет понятие как можно работать с компилятором
DSL из пакета LINGVO. Я в смысле, можно ли написать свою прогу, которая бы работала с файлами *.lsd который формируются при компиляции словарных статей компилятором DSL. Как словарь LINGVO работает с этими файлами. Я бы хотел написать свой словарь.
Заранее благодарен!!!



Вопрос отправлен: 22.06.2002, 04:27
Отправитель: Сергей (cppdummy@narod.ru)

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

Отвечает Portnov

Приветствую Вас, Сергей!
Насколько я помню, нескомпилированный словарь содержит текст с некоторыми ключевыми словами, тегами. Вообще говоря, нужно писать компилятор, но т.к. ключевых слов немного, можно обойтись без знания теории формальных грамматик. Я когда-то что-то подобное писал, (на Паскале) но там были уж совсем не словари, а что-то другое. И, наверное, главной проблемой будет узнать формат скомпилированных словарей. Не удивлюсь, если он лицензирован, и узнать его можно только у ABBYY и только за деньги(немалые). А может, кто-нибудь этим уже занимался. Поищите в Интернете.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:09
Отправитель: Portnov


Отвечает masquer

Здравствуйте, Сергей!
А кнопочку F1 нажать и справку почитать не судьба. Смотри dsl1.hlp
LSD???

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


 Вопрос № 504

Уважаемые эксперты есть одна проблема ,подцепил не знаю где
(асю может поставил) вредную такую вещь через определенный промежуток времени( порядка 40 мин) при перемещении курсора мыши курсор начинает скакать во все стороны и ничинают ятак понимаю имитироваться нажатия мыши начинают открываться окна запускаться задачи и тд как мне его вычислить и убрать антивирус не видит



Вопрос отправлен: 22.06.2002, 08:28
Отправитель: andz

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

Отвечает Федос

Доброе время суток, andz!
легче всего - это переставить винды. а так можешь покапаться в реестре, может и найдешь что нибудь.


Ответ отправлен: 24.06.2002, 10:19
Отправитель: Федос


Отвечает Portnov

Приветствую Вас, andz!
У нас в машинном классе такое было на одной машине. Как выяснилось, вири ни при чем, был поврежден шнурок мышки. Так что проверьте мышку. Если все нормально - убедитесь, что у вас последние обновления антивирусных баз и проверьте еще раз антивирусом. Может быть, правда (теоретически), что сам антивирус уже заражен, тогда надо винт сносить к кому-нибудь и проверить у него (аккуратно!). Но, повторюсь, вероятно, вири и трояны ни при чем.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:47
Отправитель: Portnov


Отвечает kvINT

Добрый день, andz!
Стандартный совет:
1. Обнови антивирус
2. Скорее всего, глюк самой винды - переставь ее. Если думаешь, что зараза какая-то, то лучше начисто, т.е. format C: и т.д.

Ответ отправлен: 22.06.2002, 18:35
Отправитель: kvINT


Отвечает masquer

Доброе время суток, andz!
Пока на Вин2к не перешел, у меня прога была TaskKiller кажется звалась, она процессы через ToolHelp смотрит, от этого так просто не спрячешься, пробуй удалять подозрительные процессы, можно попробовать программу Antikeylogger

Ответ отправлен: 22.06.2002, 09:16
Отправитель: masquer


Отвечает baldr

Приветствую Вас, andz!
Возможные причины в порядке убывания вероятности:
1) У Вас друзья с чувством юмора... Скорее всего, Вам подсунули такую программу, которая все это
и делает... посмотрите в автозагрузке и реестре - там должно быть...
2) Провод от мышки неплотно воткнут... Просто случайно задели его или перетерся где-то...
Если под DOS будет то же самое - это 99% - перетерся провод... Лучше с этим сразу разобраться,
иначе можно и порт спалить...


Ответ отправлен: 23.06.2002, 00:47
Отправитель: baldr


 Вопрос № 505

Посмотрите пожалуйста программу. Можно ли что-то улучшить или добавить? Программа предназначена для вывода дампа CMOS в файл. Писал я сам - и английские комментарии тоже писал я сам, поэтому не пытайтесь уличить в плагиате ;)


Приложение:


Вопрос отправлен: 22.06.2002, 08:25
Отправитель: Джамаль (s_man80@inbox.ru)

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

Отвечает Portnov

Добрый день, Джамаль!
mov byte ptr[di],al
dec di
можно заменить на stosb при установленном DF, а если надо inc di, то при снятом DF. Эта последовательность у вас часто встречается. А так вроде все хорошо.
С уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:47
Отправитель: Portnov


Отвечает Broken Sword

Добрый день, Джамаль!
Ну, сразу что бросается в глаз: у тебя почему то CMOSlen = 0FFh, хотя должно быть по идее 7Fh (и это максимум, может быть и меньше). А! Вообще 7-ой бит 70h порта - это к NMI относится, а реально индекс - биты 6-0 (т.е. максимум 7F), а у Зубкова кстати на 336 странице по этому поводу ошибка (пишет: "бит 6: собственно индекс", а должно быть "бит 6-0".
И вообще, сильно мутно (особенно, hex-ascii).
Вот в приложении см. мой вариант (не выполн. всех наворотов с CMOSXX.bin, но тем не менее в 2,5 раза меньше)
p.s. у тебя error: reserved word used as symbol

(это все изза метки err - в TASM-е это слово зарезервировано)

Приложение:

Ответ отправлен: 22.06.2002, 23:45
Отправитель: Broken Sword


 Вопрос № 506

Доброго времени суток, господа эксперты.
Кажется, мой вопрос неправильно поняли, я спрашивал, как ОПРЕДЕЛИТЬ настройки прокси, а не как их ЗАДАТЬ. К тому же, естественно, меня интересовало, как это произвести программно (это ведь рассылка по Ассемблеру)))



Вопрос отправлен: 22.06.2002, 09:59
Отправитель: Gibbel

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

Отвечает igorash

Приветствую Вас, Gibbel!
Это по идее должно где-то в реестре храниться, поищи в нем, а ваще помню где-то читал про то как воровать диалаповые пароли там было подробно где искать, и как раскодировать, но у прокси наверно то же самое примерно.


Ответ отправлен: 22.06.2002, 12:21
Отправитель: igorash


 Вопрос № 507

Привет эксперты!!!
Да нет же,есесно я догадался нажать на f1. DSL компилятор преобразует
словарные статьи о конструирование которых подробно описано в хелпе
"dsl1.hlp". Затем, после компиляции мы получаем уже словари, тоесть файлы
с расширением *.lsd.
Далее, пишется, что мы можем испльзовать откомпилированный словарь в
программе LINGVO.
Но меня это не совсем устраивает. Поэтому вопрос был таков. Можно ли
работать со словорями из своей проги.
Короче мне просто не сдался LINGVO, хочу иметь своё.
Если знаете какой нибудь ресурс связанный с DSL, бросайте линк плиз.
С уважением.
Спасибо



Вопрос отправлен: 22.06.2002, 11:20
Отправитель: Сергей (cppdummy@narod.ru)

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

Отвечает masquer

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

Ответ отправлен: 22.06.2002, 17:58
Отправитель: masquer


 Вопрос № 508

Эксперты.
Как никогда не задумывался , но вот сегодя столкнулся.
Загружаю программу в отладчике AFDPRO, и вижу что регистр СХ
изменился, хотя я саму программу не запускал, только загрузил. Что значит число в регистре СХ, и почему оно изменилось. ?(до загрузки был о, после загрузки 33)
Спасибо



Вопрос отправлен: 22.06.2002, 13:46
Отправитель: Oleg

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

Отвечает Portnov

Здравствуйте, Oleg!
Вот я сейчас попробовал в AFD, у меня вообще при загрузке CX=03e9h. А TurboDebugger показывает CX=0. Скорее всего, это глюк AFD. Он ведь писался самое позднее для 286-го, там все-таки есть некоторые отличия, может из-за этого.
С уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:47
Отправитель: Portnov


Отвечает masquer

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

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


Отвечает Федос

Приветствую Вас, Oleg!
это статус удачной загрузки программы. не обращай внимание.


Ответ отправлен: 24.06.2002, 10:12
Отправитель: Федос


Отвечает Broken Sword

Приветствую Вас, Oleg!
Методой научного тыка удалось установить следующее: CX=размер загружаемой файлы.

Ответ отправлен: 22.06.2002, 17:30
Отправитель: Broken Sword


 Вопрос № 509

Может быть мой вопрос покажеться немного странным. Но...я пишу программу кнахождения квадратного уравнения на асме. Написал ввод чисел, нашел дискрименант, вывел его на экран. Но дальше необходимо извлечь корень из него. Но как это сделать? Допустим в DX = 24h как извлечь корень?
Все предложения, советы, сырцы приветствуються...



Вопрос отправлен: 22.06.2002, 15:19
Отправитель: Andy

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

Отвечает vitya

Доброе время суток, Andy!
а ты как хочешь численными методами или через сопроцессор. в любом случае советую второе, а то замучаешься!

Ответ отправлен: 24.06.2002, 11:07
Отправитель: vitya


Отвечает masquer

Доброе время суток, Andy!
Можно сдвигом (shr dx, 1), можно целочисленным делением (div, idiv),можно сопроцесоором fdiv, тебе, наверное, последнее подойдет

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


Отвечает Федос

Приветствую Вас, Andy!
функция сопроцессора fsqrt.


Ответ отправлен: 24.06.2002, 10:10
Отправитель: Федос


Отвечает Broken Sword

Доброе время суток, Andy!
FPU на что

Ответ отправлен: 22.06.2002, 17:30
Отправитель: Broken Sword


Отвечает Portnov

Доброе время суток, Andy!
Можно через сопроцессор, там есть команда FSQRT. А вообще, корень же будет дробным числом (скорее всего), а основной процессор не расчитан на работу с такими числами. Есть, правда, итерационный метод нахождения корня, но там ведь все равно с дробями придется работать, без сопроцессора обойтись трудно. Так что мой совет в общем случае - перевести число в формат сопроцессора, сказать FLD diskr, FSQRT, FST koren. Насчет 24h: 24h=36, sqrt(24h)=sqrt(36)=6 :).
С уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:47
Отправитель: Portnov


Отвечает kvINT

Здравствуйте, Andy!
Естественно, на асме ты корень напрямую извлечь не сможешь. Нужно заменить операцию извлечения корня комбинацией операций деления, вычитания, сложения. Существуют алгоритмы для его вычисления, их надо искать где-нибудь в книгах по математике. Мне в голову пришел лишь дубовый (что естественно после просмотра футбола и потребления 3 бутыорк крепкого пива - эх, жаль сенегальцев) флгоритм:
1. Поделить число на 2.
2. Возвести результат в квадрат.
3. Если квадрат больше, чем исходное число, поделить его на 2 и вычесть из предыдущего.
4. Иначе поделить его на 2 и прибавить его к предыдущему.
Пр.:
sqrt(10)
10/2=5
5*5=25 >10
5-5/2=5-2,5=2.5
2.5*2.5=6.25 <10
2.5+2.5/2=2,5+1,25=3.75
3.75*3.75=14.06 >10
3.75-1.25/2=3,75-0,63=2.88
2.88*2.88=8.29 <10
2.88+0.63/2=2,88+,32=3.2
3.2*3.2=10.2 >10
и т.д.
алгоритм тупой, но работать будет. Естественно, надо задать предел вычислениям, например, если квадрат-исходное_число <= 0.001 то прекратить итерации.

Ответ отправлен: 22.06.2002, 20:32
Отправитель: kvINT


Отвечает Frank

Здравствуйте, Andy!
Корень можно посчитать численными методами:
За итерационную формулу можно взять: x=(1/2)*x+(1/2)*(c/x)
где с - наше число (Эта формула сходится, если нужно доказательство сходимости, то могу объяснить подробнее, но запомни, итерационная формула сходится только если модуль производной правой части меньше 1, и выполняется критерий липшица: abs(f(x1)-f(x2))<=b*abs(x1-x2) [0Т.е. твоя первоочередная задача состоит в отыскании как раз той самой итерационной формулы, а потом уже проблем не будет.
При вычислении: Берешь начальное приближение и считаешь следующее приближение и т.д. до достижения нужной точности, которая считается разницей двух последних итераций
Пример для с=2 ( считаем sqrt(2) ) по предыдущей формуле
x0=1.5 ( это наше начальное приближение)
x1=(1/2)*(x0+c/x0)=(1/2)*(1.5-2/1.5)=1.4167
x2=(1/2)*(x1+c/x1)=(1/2)*(1.4167-2/1.4167)=1.414216
и т. д. ( реальный корень: 1.414214 вот так вот :))
ЗЫ Можешь не морочить голову и юзать сопроцессор :)) как тут правильно говорят тебе товарищи эксперты :)
ЗЗЫ Численные методы это супер !

Ответ отправлен: 23.06.2002, 00:46
Отправитель: Frank


Отвечает Blackeye

Приветствую Вас, Andy!
Воспользуйся сопроцесорными fild, fsqrt, fstp и т.д Иначе трудно тебе будет :)

Ответ отправлен: 24.06.2002, 21:42
Отправитель: Blackeye


Отвечает kostik

Здравствуйте, Andy!
Можно конечно, и численными методами. но лучше воспользоваться возможностями сопроцессора. fsqrt

Ответ отправлен: 26.06.2002, 03:32
Отправитель: kostik



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

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

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




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

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


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

В избранное