Тёмный

Как вставить ASM в Си (inline asm) 

S0ER
Подписаться 107 тыс.
Просмотров 21 тыс.
50% 1

Опубликовано:

 

21 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@ВалерийАлин-к3р
@ВалерийАлин-к3р 2 года назад
Офигенный выпуск, даже не знал что можно напрямую _start из си писать, ждем продолжения, тема очень интересная👍 Есть интересная идея выпускать про программирование ядра на си с ассемблерными вставками, но будет ли это интересно остальным так же как мне - уже другой вопрос)
@НиколайЛаткин-к8ц
Хотел лайк поставить, но он неожиданно снялся. Оказалось, уже я это смотрел и поставил лайк раньше)) Помогла информация про модификаторы.
@user-pk4hz2qt3b
@user-pk4hz2qt3b 2 года назад
Вот чего у тебя не отнимешь, дак это того, что ты весьма понятно объясняешь. Реально всё понятно становится.
@ligecss1928
@ligecss1928 Год назад
Очень интересно. Жду следущих видео с подобной тематикой))
@konstantinbondarenko5235
@konstantinbondarenko5235 2 года назад
Спасибо за Ваш труд. Жду больше выпусков про ассемблер.
@valbv
@valbv 2 года назад
Интересно! Даёшь больше видосов с компиляцией, сборкой из исходников и ковыяниями под капотом =)
@РусланСошнев
@РусланСошнев Год назад
Хорошо! Давай ещё, контент в кайф!
@extseme3464
@extseme3464 2 года назад
крутой урок, спасибо! как уже написали в комментариях, было бы здорово разобрать реальные примеры. в лоб замерить работу алгоритма без и с ассемблерными вставками.
@soltaurus
@soltaurus 2 года назад
Отличная тема, спасибо!
@Eustrop
@Eustrop 2 года назад
Это очень хорошо! Отдельное спасибо за CC лицензию. Думаю, что сценарий таких роликов можно-бы прикладывать к самому ролику, в описание, равно как и перечень литературы, и других источников. Получится полноценный учебный мини-модуль. P.S. Хотел-бы промолчать, благоговенно, Но алгоритмы продвижения, Желают комментариев и слов, Пустых совсем - я не хотел-бы лить P.P.S. ещё, я думаю, что на такой объем, уже таймкоды нужно сделать будет. Когда-то..
@sergshutk2757
@sergshutk2757 Год назад
после паскаля, ассемблерная вставка на Си, выглядит и тяжело и смешно. Особенно для тех, кто программировал и программирует на ассемблере. На Паскале мы просто вставляем код ассемблера как есть, подменяя где надо регистры переменными Паскаля. Здесь же мы делаем бессмысленную работу: ставим кавычки, ставим знак переноса, дополняем код Си-шными переменными, для того чтоб они вставились в код... Зачем? Если для ассемблера можно было использовать все те же переносы и те же комментарии что используются в Си. Да и переменные можно было напрямую указать.
@Принуждениекмиру-ь2ц
Спасибо. А в какой программе вы это компилируете?
@qu11t62
@qu11t62 2 года назад
о, только недавно задался вопросом, как вставки в си сделать на gcc. спасибо большое
@DonEstorsky
@DonEstorsky 2 года назад
так я не понял, а зачем тогда такие инструкции как ".intel_syntax noprefix " нужны?
@dalluzz
@dalluzz 2 года назад
Одобряю контент
@metaSopp
@metaSopp Год назад
А что за текстовый редактор вы тут используете ?
@alexeygreen4073
@alexeygreen4073 2 года назад
И всё таки, в чем главное преимущество таких вставок перед целыми отдельными модулями на asm? Писать огромными блоками в Сишном коде на ассемблере нет особого смысла. А от мелких вставок оптимизация будет не значительна в больших проектах.
@DonEstorsky
@DonEstorsky 2 года назад
Для некоторых низкоуровневых функций нет готовых команд или библиотек и приходится выполнять их на ассемблере. Например переключить режим процессора записав единственный регистр. Читал про ядро кортекс -- там полно таких действий было.
@nakamasama
@nakamasama 2 года назад
Моя личная проблема: я пишу библиотеку на с++ и в ней я не могу использовать никаких других библиотек. У меня реализованы алгоритмы рандомизатора в библиотеке и мне нужно передать текущее системное время. Как мне это сделать без использования библиотек? В с++ нет такого функционала. Нужно самостоятельно реализовать алгоритм на ассемблере. Или мой другой проект, который я хочу реализовать - мой собственный аналог библиотеки ввода вывода. Там тоже никуда без ассемблера. Вывод: при разработке не программ, а библиотек это даже очень важный функционал. Я даже больше скажу: бОльшая часть базовых с++ библиотек написана не на самом с++, а на ассемблере. Также при написании проектов на других языках может потребоваться написать библиотеку на с++ для проекта, где также важно будет писать код на ассемблере.
@DonEstorsky
@DonEstorsky 2 года назад
@@nakamasama ну да -- примеров можно приводить до бесконечности.
@pekpyt6
@pekpyt6 2 года назад
Embedded programming.
@viacheslav1392
@viacheslav1392 Год назад
ассемблерные вставки это не про оптимизацию...
@СергейПанов-з3ц
@СергейПанов-з3ц 2 года назад
06:20 "может показаться немного сложно" - для человека который не писал "низкоуровневых" языках это вообще супер сложно. Я почти ничего не понял. Спасибо за видео. Такой контент классный, но на нём много просмотров не собрать. Надеюсь хватит мотивации не забрасывать это дело.
@xx-hq4rb
@xx-hq4rb 2 года назад
О, это интересно.
@ДенисСомин
@ДенисСомин 2 года назад
Хочу предложить тему - cps на языке Си, или передача продолжения, на Ютубе по этой теме всего 1 ролик и то, там пайтон и js, да и в интернете не так много статей по этому поводу. Лично мне было бы интересно послушать.
@deniskulakov682
@deniskulakov682 2 года назад
А подскажите где ролик про работу компилятора(перепроцесор компилирование линковка)?
@S0ERDEVS
@S0ERDEVS 2 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-HBFA6dKW7qE.html
@ddruganov
@ddruganov 2 года назад
я не силён совершенно в таких низкоуровневых вещах, но как ситуация обстоит с кроссплатформенностью в таком случае?
@ЕвгенийРогожкин-и9е
Никак. Когда переходите на асм - это автоматически означает привязывание к конкретной архитектуре, даже x86 и x64 в этом случае это разные архитектуры, об этом, кстати, Соер говорил.
@MrVintarb
@MrVintarb 2 года назад
Ifdef и пишешь под разные платформы
@azamatk4302
@azamatk4302 2 года назад
DDD и clean code покинули чат =)
@vovanchik_ru4208
@vovanchik_ru4208 2 года назад
давай про тоже самое, только в рамках чтения памяти другого процесса :) Поближе к читам. Там больше аудитория будет :) Да и молодёжь подтянешь. Благое дело.... :)
@prosto1076
@prosto1076 2 года назад
Соер, переименуйте канал с буквой O вместо цифры 0 в названии, так как Ютуб поиск не выдает ваш канал по запросу soer
@olezhonnv3215
@olezhonnv3215 2 года назад
Намудрили они с эттими процентами, модификаторами, кавычками и скобочками. Насколько я помню, Борланд С++ версии 3.0 компилил конструкции вида: asm { mov ax, 50 mov bx, 20 add ax, bx ... ... } И вроде как переменные можно было напрямую туда писать, без процентов и дальнейших перечислений ниже с модификаторами. Ну это давно было, в 98 году я Борландом тем компилил свои первые программы на С и С++.
@sergshutk2757
@sergshutk2757 Год назад
Это другой ассемблер и если его понять, то в некоторых случаях он более понятен.
@arphenti2502
@arphenti2502 2 года назад
Вопрос: в чем преимущество прямых вставок ассемблера перед SSE/AVX/NEON intrinsics? Почему бы просто не использовать интринзики?
@simplechannel7859
@simplechannel7859 2 года назад
В точку попал
@edkachalov
@edkachalov 2 года назад
Если просто использовать, то можно поламать регистры, которые использует компилятор для своих нужд.
@nakamasama
@nakamasama 2 года назад
Соер, пожалуйста, объясни в следующем уроке по ассемблерным вставкам, как работать с системными переменными. Например, как вытащить системное время при помощи ассемлерной вставки. Просто не всегда есть возможность использовать библиотеки.
@prosto1076
@prosto1076 2 года назад
Только это скорее всего не язык си, а расширение языка от gcc
@КириллЧе-я5ы
@КириллЧе-я5ы 2 года назад
Сто лет не упражнялся в асм оптимизации сишного кода…
@ВячеславПавжик
@ВячеславПавжик 2 года назад
Думаю про запуск бинарника из запущенного процесса тоже может быть интересной. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-fQnffaiwsR8.html Но, тема про размещение в памяти затронута вскользь. Было бы интересно её развитие
@GexPlayerMD
@GexPlayerMD 2 года назад
Чёт счётчик на заднем плане неправду показывает, 90К, но по факту ведь 88К.
@S0ERDEVS
@S0ERDEVS 2 года назад
Это не счетчик, а цель. На канал был видос про целеполагание, которое я использую .
@simplechannel7859
@simplechannel7859 2 года назад
Автор, ты хоть дай людям инфу, где можно применять такие вставки. Только когда будешь давать примеры не забудь про нативную память и совместное использование такой памяти, а то ведь тебя насмотрятся и кинутся реализовывать
@ИльдарБулатов-т4х
@ИльдарБулатов-т4х 2 года назад
в чем нюанс?
@ДмитрийМелентьев-ю9с
Ба, а что с глазом? Желаю здоровья.
@ybrbnf333
@ybrbnf333 2 года назад
Выбрал вилку как мужчина
Далее
ОН У ТЕБЯ ЗА ДВЕРЬЮ!
22:33
Просмотров 460 тыс.
Ребенок по калькуляции 😂
00:32
Human vs Jet Engine
00:19
Просмотров 110 млн
Что реально дают IT курсы?
12:18
Просмотров 94 тыс.
Создание сборщика мусора | С
16:02
ОН У ТЕБЯ ЗА ДВЕРЬЮ!
22:33
Просмотров 460 тыс.