
Vitaly
20.05.2017
17:48:07

Demyan
20.05.2017
17:48:11
я вот пишу вставки
иногда
приходится под все платформы дописыывать

Google

Vitaly
20.05.2017
17:48:28

Дед Пегас
20.05.2017
17:48:48

Evgeniy
20.05.2017
17:48:54
Я вас удивлю, некоторые вещи компилятор делает намного лучше людей.
Например, страшно представить, сколько времени надо асм профессионалу, чтобы оптимально реализовать
int foo(int i) { return i % 3; }
А вот компилятор делает это за микросекунды:
movsxd rax, edi
imul rcx, rax, 1431655766
mov rdx, rcx
shr rdx, 63
shr rcx, 32
add ecx, edx
lea ecx, [rcx + 2*rcx]
sub eax, ecx
ret
И я не поверю, что есть асм мастера, которые помнят все подобные константы и хитрости наизусть
Еще раз, это не значит что в каждом конкретном случае компилятор лучше

Дед Пегас
20.05.2017
17:49:15

Vitaly
20.05.2017
17:49:36
Вставки на ассемблере - это зло. Нормально написанный на C/C++ код соберётся под любую поддерживаемую архитектуру. Вставки же придётся писать под каждую с нуля.

MrSmeet
20.05.2017
17:49:58

Vitaly
20.05.2017
17:50:18

Pepe
20.05.2017
17:50:34

Дед Пегас
20.05.2017
17:50:39
Если уж очень нужно, то да, чо нет-то? Но я бы предпочёл выносить такие вещи отдельно.

Stanislav
20.05.2017
17:51:11

Дед Пегас
20.05.2017
17:51:29

Pepe
20.05.2017
17:51:39

Evgeniy
20.05.2017
17:51:49

Google

Vitaly
20.05.2017
17:52:51
А почему в малварях без асм никуда?
Раньше вообще почти все малвари на асме писались, дабы успешнее скрываться от антивирусов и иметь небольшой размер. Сейчас же малварщики настолько обленились, что есть даже поделия, тащащие за собой .NET Framework.

Evgeniy
20.05.2017
17:53:39

Vitaly
20.05.2017
17:54:51

Evgeniy
20.05.2017
17:54:55

Stanislav
20.05.2017
17:55:03

Vitaly
20.05.2017
17:55:22

Evgeniy
20.05.2017
17:56:12

MrSmeet
20.05.2017
17:56:28

Vitaly
20.05.2017
17:56:33
Был у нас в конторе сотрудник, который любил на каждый чих ассемблерные вставки делать. В результате его код на review постоянно отправлялся на доработку, а он больно получал по рукам рельсой. Потом он исправился. ?

Evgeniy
20.05.2017
17:56:37

MrSmeet
20.05.2017
17:58:26
Та я просто не понимаю, почему на си писать для связки с питоном норм, а асм вставочки не норм, че там сложного то, помойму асм один из самых дружелюбных языков' - выучил команду и в бой

Vitaly
20.05.2017
17:59:02
Если ты пишешь just for fun для себя - хоть весь проект пиши на асме, всем плевать.
Если же ты пишешь для организации, то такой код не пройдёт review и тебе отправят его назад на доработку, т.к. собрать его под другую архитетуру будет невозможно, а поддерживать сложнее написанного на тех же чистых крестах или сях.

Vladislav
20.05.2017
18:00:49

MrSmeet
20.05.2017
18:01:13
+1

Google

Vladislav
20.05.2017
18:01:24
про организацию - феерический бред :)

Vitaly
20.05.2017
18:01:46

Vladislav
20.05.2017
18:02:23
и как вендоры пилят дровишки и aes-ы под свое железо с такими правилами :)

Vitaly
20.05.2017
18:02:39
Речь о прикладном ПО.

Vladislav
20.05.2017
18:02:59

Vitaly
20.05.2017
18:03:20

Vladislav
20.05.2017
18:03:51
не на мейке и не на питоне

Дед Пегас
20.05.2017
18:04:15
У людей проблемы с целеполаганием.

Vladislav
20.05.2017
18:04:18
потом делай глубокомысленные заявления :)

Дед Пегас
20.05.2017
18:04:18
Какой пиздец.

Vladislav
20.05.2017
18:04:46
согласен

Vitaly
20.05.2017
18:04:59
про организацию - феерический бред :)
К примеру возьмём Telegram Deskop. Написан на плюсах с использованием Qt. Кроссплатформенное ПО. Найди в нём ассемблерные вставки пожалуйста. Его код тоже лютое говно кстати.

Stanislav
20.05.2017
18:04:59

Vladislav
20.05.2017
18:05:25

Vitaly
20.05.2017
18:05:48
если ты пишешь кросплатформенный продукт, то использовать асм тебе придется
^^ Я вижу тут противоречие.

Vladislav
20.05.2017
18:06:07

MrSmeet
20.05.2017
18:06:18

Google

Vitaly
20.05.2017
18:06:18

Vladislav
20.05.2017
18:06:19
ну докажи, что там асм вреден
и не дергай из контекста, не позорься

Vitaly
20.05.2017
18:06:53
Ясно. С вами, сэр, разговор окончен ибо не имеет смысла.

Admin
ERROR: S client not available

Vladislav
20.05.2017
18:06:56

MrSmeet
20.05.2017
18:07:02
Конструктивно

Vladislav
20.05.2017
18:07:05

Pepe
20.05.2017
18:07:14

Stanislav
20.05.2017
18:07:46
папку 3dparty не считаем

Daniel
20.05.2017
18:10:31

MrSmeet
20.05.2017
18:10:44
ну покажи
https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/corelib/arch/qatomic_ia64.h

Vitaly
20.05.2017
18:12:36

MrSmeet
20.05.2017
18:13:03

Vitaly
20.05.2017
18:13:16
и?
Экзотическая архитектура.

Stanislav
20.05.2017
18:13:42
давай посвежее возьмем
https://github.com/qt/qtbase/tree/dev/src/corelib/arch

Google

Evgeniy
20.05.2017
18:17:50

Stanislav
20.05.2017
18:18:14
#ifdef __ARM_NEON__
дальше

Evgeniy
20.05.2017
18:18:22

Vitaly
20.05.2017
18:18:40
Попробуй ещё разок. Снова промах.

Stanislav
20.05.2017
18:19:00
кому то было лениво интринсики использовать

MrSmeet
20.05.2017
18:19:52
Для борьбы со сложностью, придумали инкапсуляцию, заверни в функцию и все, опиши сверху норм комментом, что и как, а так выходит, нельзя потому что мы так сказали, конечно asm уж слишком низкий уровень, но это не повод не юзать, потому, что не осилил

Stanislav
20.05.2017
18:20:55
да, а у С++ слишком высокий уровень и накладные расходы, поэтому только С с асм вставками, только хардкор

Vitaly
20.05.2017
18:21:24
Да и вообще исходя из такой логики C++ не нужен. Даёшь голый асм в массы! ?

Vladislav
20.05.2017
18:22:00

Daniel
20.05.2017
18:22:01

Stanislav
20.05.2017
18:22:05

MrSmeet
20.05.2017
18:22:10

Stanislav
20.05.2017
18:22:23

Vitaly
20.05.2017
18:22:57

MrSmeet
20.05.2017
18:23:17

Stanislav
20.05.2017
18:23:22
нам нужен @berkus

Surreal
20.05.2017
18:27:29