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

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


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

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

Выпуск № 465
от 12.01.2003, 13:10

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


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

Eugene
Статус: Опытный
Общий рейтинг: 108.8
URL: мощный файловый архив
[Подробней >>]
Igoryk
Статус: Доверительный
Общий рейтинг: 135.86
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 139.41
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
 
LIFO
Статус: Профессиональный
Общий рейтинг: 119.61
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 112.57
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 105.98
Телефон: (34316)2-31-45
[Подробней >>]
 
VicSimon
Статус: Начальный
Общий рейтинг: 103.67
[Подробней >>]
Max
Статус: Доверительный
Общий рейтинг: 105.05
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 106.91
[Подробней >>]
 
Portnov
Статус: Профессиональный
Общий рейтинг: 114.41
URL: Мой сайтик...
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.14
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 146.82
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.19
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
GL
Статус: Опытный
Общий рейтинг: 103.31
[Подробней >>]
Traish
Статус: Опытный
Общий рейтинг: 125
[Подробней >>]


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

Вопрос № 2361. Здрсте! Чего делают 4300h и 4301h функции 21h int? Спсибо!... (ответов: 5)
Вопрос № 2362. Подскажите где можно почитать о взломе игр с помощью Soft-Ice и дисасемблера. Если у кого есть, то п... (ответов: 3)
Вопрос № 2363. Здравствуйте Эксперты!!! push ss ... pop ss Шутка! :) На такие вот грабли сам наступил. А если серье... (ответов: 2)
Вопрос № 2364. Вы не считаете что если МикроСофт будет продвигать .NET то если не выйдет новых версий Masm'а то асм... (ответов: 11)
Вопрос № 2365. Здравствуйте, все, кто читает это сообщение... Пишет вам Rayan. Правда не знаю, туда ли я пишу э... (ответов: 7)

Вопросов: 5, ответов: 28


 Вопрос № 2361

Здрсте!
Чего делают 4300h и 4301h функции 21h int?
Спсибо!



Вопрос отправлен: 07.01.2003, 16:30
Отправитель: DyC (dyc@nm.ru)

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

Отвечает Eugene

Добрый день, DyC!
Функция 4300h используется для получения аттрибутов файла:
AX = 4300h
DS:DX = адрес, указывающий на строку с именем файла и нулём на конце

Возвращает:
AX = код ошибки, если CF установлен в 1
CX = аттрибут файла
0-й бит - read only
1-й бит - hidden
2-й бит - system
3-й бит - volume entry label
4-й бит - subDirectory
5-й бит - archive

Функция 4301h используется для установки аттрибутов файла:
AX = 4301h
CX = аттрибуты файла, биты расписаны выше
DS:DX = адрес, указывающий на строку с именем файла и нулём на конце

Возвращает:
AX = код ошибки, если CF установлен в 1


Ответ отправлен: 07.01.2003, 17:00
Отправитель: Eugene


Отвечает Igoryk

Добрый день, DyC!
4300h - считывает атрибуты файла, а 4301h устанавливает.

Ответ отправлен: 07.01.2003, 21:16
Отправитель: Igoryk


Отвечает Maverick

Доброе время суток, DyC!
Я так понял тебе это по теме вирусов.
Короче когда ты находишь файлы, то могут попастся защищенные от записи, поэтому тебе надо снять аттрибут RO и чтоб не демаскировать вирус, потом восстановить аттрибут.
Находишь файлполучаешь его аттрибут и сохраняешьставишь ему беззубыйкоцаешь файлвосстанавливаешь аттрибут.
В приложении описание ф-ий.

Приложение:

Ответ отправлен: 08.01.2003, 08:30
Отправитель: Maverick


Отвечает LIFO

Здравствуйте, DyC!
Получить/установить атрибуты файла

Ответ отправлен: 08.01.2003, 12:20
Отправитель: LIFO


Отвечает keleb-glin

Доброе время суток, DyC!
4300h - получает аттрибуты файла в cx.
В ds:dx должен лежать указатель на строку с именем файла, оканчивающуюся нулевым символом ( напр db 'xxx.jpg', 0 )
4301h - задаёт аттрибуты файла. cx всё то же самое, только при вызове cx должен содержать новые аттрибуты


Ответ отправлен: 08.01.2003, 17:23
Отправитель: keleb-glin


 Вопрос № 2362

Подскажите где можно почитать о взломе игр с помощью Soft-Ice и дисасемблера. Если у кого есть, то пожалуйста, закиньте статеек по этой теме мне на мыло.



Вопрос отправлен: 07.01.2003, 17:53
Отправитель: Makcim (makcim@khakasnet.ru)

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

Отвечает kvINT

Доброе время суток, Makcim!
Смотри в ящике

Ответ отправлен: 07.01.2003, 21:31
Отправитель: kvINT


Отвечает Maverick

Приветствую Вас, Makcim!
Ну что такое игра, это же обыкновенная программа.
Вот и ищи книги по хаку программ и изучай ассемблер.


Ответ отправлен: 08.01.2003, 08:30
Отправитель: Maverick


Отвечает VicSimon

Доброе время суток, Makcim!
Много статей по взлому здесь
http://www.reversing.net

Ответ отправлен: 08.01.2003, 06:24
Отправитель: VicSimon


 Вопрос № 2363

Здравствуйте Эксперты!!!
push ss
...
pop ss
Шутка! :) На такие вот грабли сам наступил.
А если серьезно, закидайте меня (авторскими) вариантами обмена значений сегментных регистров. Например es<=>ds, и все возможные другие комбинации. Не сомневаюсь что найдется пара вариантов о которых я не подозревал :)
Для приведенного выше примера я использую такой код (ессно из-за ну очень мелкого размера):
push ds
push es
pop ds
pop es
Но для ss так не катит (далее в коде стэк не используется!!! до востановления ss)
ЗЫ. Если когото интересует нафиг оно мне надо: Например есть циклический код, в котором сначала читаем из одного буфера и пишем в другой, а потом наоборот. Тогда тот код, что я привел будет в сам раз для lodsb/stosb.
ЗЗЫ. ОГРОМНЕЙШЕЕ СПАСИБО ВСЕМ ЭКСПЕРТАМ ЗА ВАШИ ОТВЕТЫ.
Я не перестаю восхищаться Вашим трудом. Просто удивляюсь где же у Вас берется время и желание постоянно отвечать на вопросы.

С уважением, sba.




Вопрос отправлен: 08.01.2003, 01:21
Отправитель: Бадян (sba@litech.net)

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

Отвечает Max

Приветствую Вас, Бадян!
mov ax,ss
mov bx,ds
xchg ax,bx
mov ax,ss
push ds
mov ds,ax
pop ax
mov ss,ax


Ответ отправлен: 08.01.2003, 02:34
Отправитель: Max


Отвечает keleb-glin

Приветствую Вас, Бадян!
mov ax, ss
...

mov ss, ax


Ответ отправлен: 08.01.2003, 17:28
Отправитель: keleb-glin


 Вопрос № 2364

Вы не считаете что если МикроСофт будет продвигать .NET
то если не выйдет новых версий Masm'а то асм вымрет



Вопрос отправлен: 08.01.2003, 10:59
Отправитель: Master

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

Отвечает Eugene

Здравствуйте, Master!
Асм вымрет только если придёт конец света, других причин я не вижу. А при чём здесь .NET кстати? Из-за того, что МелкоСофт его продвигает? Так они и С++ продвигают, но Асм как был, так и остался.

Ответ отправлен: 08.01.2003, 11:09
Отправитель: Eugene


Отвечает Andrew Vext

Доброе время суток, Master!
Нет, ведь IL все равно компилируется в коды процессора. Не вымер же asm с выходом Java.

Ответ отправлен: 08.01.2003, 13:09
Отправитель: Andrew Vext


Отвечает Portnov

Доброе время суток, Master!
Слышали такое выражение - ars longa, vita brevis est ? В данном случае - Asm longa, MS brevis est, или, по-другому, MS must die, asm forever! В том смысле, что асм будет жить и развиваться вне всякой зависимости от мелкософта. А про новые версии масма со времен появления масм32 я не слышал. Сейчас куча всяких ассемблеров, многие из них более передовые, чем масм.
С уважением, Portnov.

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


Отвечает Bob Johnson

Добрый день, Master!
До конца асм вымереть не сможет. Просто потому, что все-таки всегда есть что-то, что будут писать на нем (например, драйвера).


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


Отвечает LIFO

Здравствуйте, Master!
Новых версий уже и так лет 5 не выходит , а умереть он не может.

Ответ отправлен: 08.01.2003, 12:17
Отправитель: LIFO


Отвечает masquer

Приветствую Вас, Master!
Пускай себе продвигает. Туфта та еще, судя по всему, что-то типа VB с рантайм библиотекой и прочей фигней. И асм если до сих пор не вымер, то и дальше будет жить.

Ответ отправлен: 08.01.2003, 12:39
Отправитель: masquer


Отвечает Gibbel

Приветствую Вас, Master!
ASM - Язык процессора... Как ты себе представляешь его смерть???

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


Отвечает GL

Приветствую Вас, Master!
Я так не считаю. Т.к. какая например связь между .NET и ZX-Spectrum или каким-нибудь микроконтроллером. Да и на масме свет клином не сошёлся :)
Что бы там микрософт не продвигал, я как программировал на ассемблере, так и буду продолжать.


Ответ отправлен: 08.01.2003, 12:47
Отправитель: GL


Отвечает keleb-glin

Добрый день, Master!
АСМ никогда не вымрет по той простой причине, что то, на чём построено всё остальное, умереть не может. Да, сейчас мало кто юзает АСМ, потому что С++ и Дельфи во многом удобне, да и зачем писать всё самому, если есть визарды в вообще визуальный VCL? Только вот когда кардинально поменяется архитектура железа (а я думаю, это произойдёт до того, как мы выйдем на пенсию ) большинство существующих стандартов умрёт, прийдётся создавать новые компиляторы, первым из которых появится компилер АСМа, т.к. он намного проще. И вот пока не появятся визуальные среды, кодеры на VC и Delphi будут собирать бутылки, а мы - писать на асме.
p.s. Я бы не стал так возвышать роль .NET; по - моему все эти россказни про полную интеграцию с * - не что иное, как самореклама.


Ответ отправлен: 08.01.2003, 17:39
Отправитель: keleb-glin


Отвечает Igoryk

Добрый день, Master!
Ассеблер вечен!!!
А внедрение новых технологий не отменяет старые. Кстати ассемблеру уже полвека!!!

Ответ отправлен: 08.01.2003, 18:23
Отправитель: Igoryk


Отвечает Traish

Здравствуйте, Master!
Не думаю, что Asm вообще когда-нибудь вымрет. Даже если не будет больше доступен Masm (а новые версии и так уже несколько лет не выходят), то ведь и другие компилеры существуют.


Ответ отправлен: 09.01.2003, 08:50
Отправитель: Traish


 Вопрос № 2365

Здравствуйте, все, кто читает это сообщение...
Пишет вам Rayan. Правда не знаю, туда ли я пишу этот набор слов, но мне просто хочется "вылить душу" и поделится некоторым опытом… Просто на моих часах уже 2:07, выпито все кофе, выкурены сигареты, а поговорить не с кем… Сидел так, дня три, писал курсовую работу по предмету "Программирование на языке ассемблера" и понял: "Курсач вдвойне сложней, если он на асме…" (хоть и не очень с рифмой, зато правда). Задача заключалась в написании программы управления с помощью мыши кривой Безье, то есть изменять ее форму. В принципе, ничего нереального нет, но дело не в этом… Просто за эти три дня я понял, что такие вещи на асме не пишутся. Знаю, что программа подобного рода забрала бы у меня максимум шесть часов, если писать на С и без подготовки. Основной геморой был именно с ассемблером. Скорее всего, это из-за недостатка опыта: если честно, то до этого на асме я писал только простенькие лабы типа бинарного поиска в массиве… Курсовую я все-таки закончил. Правда, времени она у меня забрала больше чем три дня, если учитывать походы в инет за экзамплами и инфой (своего инета у меня нет). В процессе поиска нашел хороший сайт - wasm.ru (помнится он как-то упоминался в FAQ) и подписался на рассылку "RusFAQ.ru: программирование на языке Assembler". Прочитал последние пять выпусков и пришел к нескольким выводам…
ASM - хорошая и удобная вещь, но только когда он используется в нужном месте. Например, при написании вирусов, загрузчиков, программированию под микроконтроллеры… К сожалению, на этом мой список заканчивается. Зачем писать что-то для минимум 486 на асме, если это же можна написать на С, или в крайнем случае на С++? Зачем писать процедуру рисования кривой Безье на асме в 100 строк кода, если на С можно все это впихнуть в 15 и получить минимум гемороя? Только не надо говорить, что програмы на асме компактнее, меньше хавают памяти, и все такое… Сегодня, когда дисковое пространство измеряется десятками гигабайт, нужно ли говорить о 20-50 К разницы.
Да, я согласен, что ассемблер нужно знать любому программеру. Хотя бы для того, чтобы просто знать… Знать тонкости того ящика, за которым проводишь большую часть дня…
Но, по-моему, время ассемблера уже давно прошло. Точно тогда, когда программеры пересели с 386 на Целероны (образно говоря). На сегодняшний день, знания асма годятся только для того, чтобы писать лабы по программированию и вирусы. Конечно, можна писать и больше, но зачем на асме?… Драйвера уже давно пишут на С++, даже для программирования контроллеров используют С (для более современных уже и Jawa), а в нужности вирусов я сомневаюсь…
Нет, я не собираюсь Вас, экспертов, оскорбить, даже наоборот - очень хорошо, что есть люди которые занимаются тем, что помогают другим, причем бесплатно. Только, это напоминает "кружок для вышивания" - где все занимаются полезным делом, но не знают где это может пригодится. Я помню вопросы от Spaces, где он говорил, что собирается операционку писать при опыте 2 месяца. Вопрос - зачем? Только ради гемороя и удовольствия одновременно? Знаю одного программера, учится со мной в одной группе, так он немного похож на этого Spaces - все пишет загрузчики, операционки и т.д., но так ничего и не написал реально. Зато хоть теперь знает асм и написал курсачи уже двум студентам, которые не тратили свое время, а просто заплатили немного капусты…….
…Ладно, буду заканчивать этот чес… иду спать… Может, еще когда-то черкну пару строк и пришлю вам…
До встреч. rayan2003@rambler.ru



Вопрос отправлен: 08.01.2003, 13:06
Отправитель: Rayan (rayan2003@rambler.ru)

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

Отвечает Portnov

Здравствуйте, Rayan!
Н-да... Тему тонкую подняли, долго обсуждать надо... Может, на форум?
Вот вы говорите, время асма прошло. Драйвера, говорите, можно и на сях писать. Можно-то оно можно...
У меня стоит PentiumII-400. Два года назад считалось, что это довольно мощная машина. И, смею заявить, не без основания считалось. А вот теперь меньше гига - это уже совсем слабые машины считаются. Вот вы думаете, почему это так? Думаете, потому, что есть уже под три гига пни? НИ ФИГА ПОДОБНОГО, смею вас уверить. Считается так потому, что современные программы (ну, не все... Но многие) сильно тормозят на процах меньше гига. А почему они тормозят? Не-ет, не потому, что 400MHz это мало! А потому, что большинство программеров придерживаются вашей идеологии! Доказательств вам? Пожалуйста!
Беру Maple7 (если вы не знаете, это прога для всяких математических расчетов). Говорю ей: реши вот дифференциальное уравнение. Жду, жду... Где-то 40 минут решает. Думаете, почему так долго? Думаете, это из-за того, что проц слабый? Читайте дальше!
Ставлю Mathematica 4.1 (прога для тех же целей). Задаю ей ту же задачу. Решает за 1 минуту 38 секунд!
Какой вывод? Maple долго решала не из-за слабости проца, а из-за того, что программеры, ее создававшие, придерживались вашей идеологии, что, мол, один черт, на PIV 2800 ничто не тормозит безо всякой оптимизации... А представляете себе, за сколько там наносекунд Mathematica решила бы то же уравнение на PentiumIV-2800?
Сами понимаете, этот вывод можно распространить на программы для любых целей.
Конечно, от этих рассуждений до вопроса об области применения асма еще далеко. Но, я думаю, вы меня поняли, как я отношусь к идее писать драйвера на яве и тому подобным рассуждениям. Думаю, очень не вредно было бы продолжить обсуждение на форуме RusFAQ.
С уважением, Portnov.

Ответ отправлен: 08.01.2003, 14:12
Отправитель: Portnov


Отвечает Bob Johnson

Здравствуйте, Rayan!
> по-моему, время ассемблера уже давно прошло
Так и хочется вспомнить Max Payne: "Don't answer - It's a rhetorical question". Нет, нет и еще раз нет. Всегда будет та часть кода, которую написать не на асме не возможно. Пример - напиши-ка мне процедуру умножения матриц с SSE на С++? Ну и как?
> Знаю одного программера...
Ху%^ый программер значит.
У тебя на лицо переутомление - когда заставляют заниматься даже самым любимым делом очень очень много - устаешь от него так, что просто пипец. Вот у тебя так же и с асмом - просто институт отбивает желание буквально ко всему, чем там занимаются.


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


Отвечает masquer

Здравствуйте, Rayan!
Ух, сейчас тебе тут наотвечают. Дай ка и я чиракану пару строк.
К сожалению, на этом мой список заканчивается

Очень узкое у тебя мнение, соответственно и список тоже...
Я о себе скажу, хоть это и не повод для копирования, но все же... На асме я делаю проекты размером более 10 тысяч строк, и преимущества есть - проще отладка (для меня :)) - т.е. хоть объем большой, но я всегда помню, где и что у меня делается, а напиши с тем же MFC и ищи потом утечки памяти и т.д. Иногда я переделываю исходники с Си на асм, во-первых скорость кода даже не оптимизируя раза в 3-4 возрастает в общем случае, текста (не кода) получается в 3-5 раз меньше, кода в 30-50. Дальше, я напишу код, который будет быстрее и оптимальнее, чем любой из виденных мной компиляторов (я их повидал достаточно, единственных компилер, который может нормально оптимизировать, это интеловский). И т.д. в том же духе.
Итого, никто тебя асм учить не заставляет, это дело добровольное. Это я все к тому, что для асма достаточно применений, а не только курсовые и вирусы.
Да, и ночью женщин/(у) любить нужно или спать, а не такие письма строчить. :)

Ответ отправлен: 08.01.2003, 14:00
Отправитель: masquer


Отвечает Eugene

Добрый день, Rayan!
Рыба, живущая в водоёме, тоже никогда не сможет понять, отчего и для чего по воде идут круги от дождя.

Ответ отправлен: 08.01.2003, 13:23
Отправитель: Eugene


Отвечает Maverick

Приветствую Вас, Rayan!
Какие тут обиды, это на любителя т.к.научить асму сложно(невозможно), здесь нужно желание, надо этим заразиться.
P.S. Время ассемблера не пройдет никогда!!!

Ответ отправлен: 09.01.2003, 13:22
Отправитель: Maverick


Отвечает keleb-glin

Доброе время суток, Rayan!
Согласен, на асме использовать вычисления с плавающей точкой неудобно. ( но ведь реально! реально! ). Но этим неудобства заканчиваются.
Дело в том, что когда ты пишешь на С, Дельфи, ( не дай Бог ) на VB и т.д. ты полностью зависишь от компилятора. И ты не можешь быть на 100% уверенным в безошибочности своей программы, а если ты не уверен в этом, то какой ты программист. Ты просто scriptkiddie мира кодеров. Нет, я не против С++ или Дельфи, но чтобы знать их досконально, ты должен знать их компилятор и, соответственно, асм, чтобы понять, как именно всё это работает и сделать свои программы лучше.
Нет, я не хочу тебя оскорбить, просто я немного не понимаю тебя. Вот ты говоришь, зачем писать компактные программы, если мощьность компьютеров постоянно увельчивается. А затем, что средний комп в мире - Пень 233 + 32мб.рам. + 1гб. винт + вин95.
Лично у меня стоит цел500 и 64мб. И мне очень обидно, что разработчики ПО не учли сказанного выше и даже я не могу пользоваться новыми программами ( игры не в счёт ), а каково моим друзьям с пнями ( первыми )?
Конечно, С++, ЯВА, Дельфи - всё это хорошо, но скоро архитектура железа может кардинально поменяться и тогда, пока не выйдут новые компиляторы для С и т.д., я буду кодить на асме, а все С++, Дельфи, ЯВА и пр. - кодеры будут собирать бутылки ( ведь компилятор асма выцдет первым - он проще ).


Ответ отправлен: 08.01.2003, 17:54
Отправитель: keleb-glin


Отвечает Igoryk

Приветствую Вас, Rayan!
Я так понял тебя интересует зачем нужен ассемблер? Ты прав сейчас проще написать полноценное приложение на том же Visual Basic. Но если тебе нужно производить сложнейшие вычисления, то лучше всего использовать вставки ассемблера. На чистом ассемблере программировать (особенно программировать под Windows) слоновато, но можно. А вообще кто-то сравнил программирование на ассемблере с расладыванием пасьянса. Только на ассемблере можно ощутить всю красоту программы. Вот!

Ответ отправлен: 08.01.2003, 18:23
Отправитель: Igoryk



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

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

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




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

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


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

В избранное