169 похожих чатов

Вообще реально писать на Си, а потом вставить в середину

код ASM и оптимизировать какие-то операции через регистры? Я не видел чтобы так кто-то делал, хотелось бы посмотреть

17 ответов

22 просмотра

Реально, но там много чего можно делать и без ассемблера

Вряд ли много так напишегь, сейчас компиляторы хорошо оптимизируют, только если что-то конкретное.

Pushok-Roflenko Автор вопроса
Islam Isaev
Реально, но там много чего можно делать и без ассе...

да я понимаю. Я собираю все возможности. Ассемблер особенно привлекает - он может дать ускорение. Тот же язык Си переводится в ассемблер, но я не знаю как именно. С декомпиляторами и сборщиками не разобрался

Pushok-Roflenko Автор вопроса
Aleksey Zhdanov
Вряд ли много так напишегь, сейчас компиляторы хор...

Нет, не хорошо. Они создают килобайты мусора https://www.youtube.com/watch?v=fBXirr60yzM

Pushok Roflenko
Нет, не хорошо. Они создают килобайты мусора https...

Мусор в принципе можно сократить настройками. Но в целом компиляторы сейчас создают вполне быстрый код. Дело в том что современные процы имеют какие-то аппаратные оптимизации именно под типовой код компиляторов. И получается например что циклы с mov al, [esi] ; inc esi работают быстрее чем lodsb.

Pushok Roflenko
Нет, не хорошо. Они создают килобайты мусора https...

Тебя не спасёт, если ты будешь писать вставками на ассемблере. Компилятор вставляет свой стаб минимум на 10 килобайт, где проверки, инициализация и пр. Поэтому лучше напрямую писать на ассемблере, там никакого "мусора" не будет (и выбирать лучше без линковщика, потому что, если я не ошибаюсь, он тоже может добавлять что-то в код).

Pushok Roflenko
screenshot да я понимаю. Я собираю все возможности. Ассемблер...

у меня код на асме вдвое быстрей работал чем на си. Но вот сложность кода на асме возросла в раз 10. И потом я совершил ошибку с регистрами, и не стал даже ее искать.

Pushok-Roflenko Автор вопроса
CLFLUSH 🇷🇺 rdseed
Тебя не спасёт, если ты будешь писать вставками на...

В моём понимании так: Си - это куча макросов для ассемблера и я должен мочь эти языки комбинировать как будто это одно и то же. В 32 бит есть in-line ASM, а вот в 64 у них что-то сломалось. А нету случайно IDE, направленной на создание БЫСТРЫХ программ? В чистом ASM фигово читаемый код, но почему бы не заменять его макросами? Я знаю про MASM (у него макро в названии), у меня его не получилось запустить. Он не работает из коробки как FASM, как его установить? Или он - не то что я хочу?

На gcc имеется конструкция встраиваемого ассемблера, только надо использовать грамотно

CLFLUSH 🇷🇺 rdseed
Тебя не спасёт, если ты будешь писать вставками на...

Не знаю как msvc, а gcc, ничего сверх необходимого не вставляет

Pushok-Roflenko Автор вопроса
Pushok Roflenko
В моём понимании так: Си - это куча макросов для а...

В компиляторе для 64 бит майки выпилили вставки, остались только интринсики

Pushok-Roflenko Автор вопроса

хорошо, попробую разобраться

disba1ancer
Не знаю как msvc, а gcc, ничего сверх необходимого...

Поверю, как только увижу пустую программу (return 0) на 1 килобайт, PE Win32 В идеале конечно даже меньше, ассемблер могёт на 700-900 байт, но для GCC и столько будет достаточно

Pushok Roflenko
В моём понимании так: Си - это куча макросов для а...

Очень грубо называть компиляторы С — ассемблерными макросами. Нужно называть вещи своими именами, не просто так компилятор назван компилятором. IDE, направленной на создание БЫСТРЫХ программ? В чистом ASM фигово читаемый код, но почему бы не заменять его макросами? Я знаю про MASM (у него макро в названии), у меня его не получилось запустить. Он не работает из коробки как FASM, как его установить? Или он - не то что я хочу? Для MASM нужен линковщик, но там вроде уже в пакете идёт линковщик от Microsoft. И если тебе нужны макросы, то лучше подойдёт FASMG, хотя и сгодится обычный FASM. У него есть включения, которые помогают сделать синтаксис точь-в-точь С-шный

CLFLUSH 🇷🇺 rdseed
Поверю, как только увижу пустую программу (return ...

не, так не получится, я думал ты про то, что вставки код функций раздувают, но в принципе, можно использовать freestanding environment и только си без рантайма, тогда можно

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта