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

Комментарии: 46

  1. Dmitriy

    Вот тут не соглашусь. Ничего лучше человеческого асма не скомпилирует. Нахрена тогда возможнось асм вставки делать? Другое дело, время написания программы. Тут уж разработчик сам решает. И если си не влазит в память, то почти всегда проще взять камень помощнее, с учетом времени написания кода, это всеравно будет дешевле...

  2. Unsupported

    Про дальнейшую поддержку полностью соглашусь. Чем изгибаться и выкраивать такты и байты, чтобы уместиться в слабый МК, проще взять МК помощнее (во всех смыслах) и написать нормально и понятно, и человек, который будет продолжать работу над проектом, сразу въедет. это сильно сэкономит время и деньги бизнесу

    • Dmitriy

      Вопрос именно в экономической плоскости

      • Anonim

        И вот тут приходит ардуина, на которой любой школьник делает простую задачу за полчаса, а какой-то дедос с высшим образованием месяц пишет на фортране с ассемблерными вставками, да ещё хочет сто тыщ зарплаты...

        • Dmitriy

          Еще раз повторюсь, ни ОДИН оптимизатор не сделает код лучше человека. Другое дело - время. Именно поэтому в КРИТИЧЕСКИХ секциях используют вставки - это оптимальный и самый удачный и возможный вариант

          • Andrey

            поправочка: ни один оптимизатор не сделает код лучше человека с айкью 180+, аутизмом и феноменальной памятью.

            • Indr1x

              Тогда бы не существовало такого явления как демосцена и прочие compo челенджи

              • Andrey

                думаю они и расчитаны на выявление таких одиночных случаев, как и всяческие олимпиады

                • Indr1x

                  Это не одинчные случаи это целое движение и условие для победы

                  • Andrey

                    олимпиады это тоже целое движение только побеждают в них уникумы

                    • Indr1x

                      Причем тут олимпиады? Может что где когда приплетем?

                      • Andrey

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

            • Dmitriy

              Вы преувиличиваете параметры фмзиологии

              • Andrey

                я не преувеличиваю объем памяти, который необходимо задействовать

                • Indr1x

                  Где олимпиады и где оптимизация кода

                • Dmitriy

                  Давайте так. Зачем вы используете асм вставки?

                  • Andrey

                    на самом деле я уже не помню когда последний раз ими пользовался. вот кастомные инструкции делал, но они вызывались макросом на сях... который вел кстати к ассемблерной вставке этой самой инструкции

                    • Joric

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

                      • Anonim

                        >маленькие штуки писать для ботлнеков спорно

                    • Dmitriy

                      Почему ваши инструкции не создает компилятор сам, на этапе оптимизации?

                      • Anonim

                        Он о них не знает

                      • Andrey

                        а Вы понимаете о чем речь?

                        • Dmitriy

                          Вот... Немного

                          • Andrey

                            и кстати уже есть такая штука как HLS и то о чем вы спрашиваете - все к этому тоже движется

                            • Dmitriy

                              Да, потому что ресурсов уйма... Любая возможность сократить время написания привествуется .... Но это не глубина оптимиза. Это компромисс

                            • Anonim

                              Если это то о чем я думаю — видел всратое, что-то типа HSL на C# для авр

                              • Andrey

                                а инструкции процессора помимо моего случая это всегда жесткий базис, так как реализован в кремни и нене

                                • Anonim

                                  ну хай-левел синтез, только кода а не схемы

                                  • Andrey

                                    не, это уже не то

                                  • Dmitriy

                                    Схемы - это математика...

                                    • Anonim

                                      Так-то всё математика От звука до кода

                                      • Dmitriy

                                        Нет, не все....

                                  • Anonim

                                    https://habr.com/ru/post/462409/

                                    • Dmitriy

                                      Она отлично оптимизируется

                                      • Andrey

                                        Так оно и есть. Поэтому люди не делают процессоры рисуя схемы на триггерах, а отдают все синтезаторам и используют специальные языки.

                                        • Anonim

                                          То что пока не математика — просто недостаточно изучено

                                        • Dmitriy

                                          Плис и код алу - немного разные вещи...

                                          • Andrey

                                            разные но не немного. писать для кремния и писать для ПЛИС - безусловно есть различия, но многие принципы те же.

                          • Anonim

                            Это никак не относится к "код на асм будет быстрее"

                            • Andrey

                              когда чуть ли не сишный код становится схемой на уровне регистров

                      • Andrey

                        потому что это не задача компилятора. компилятор делает работу в базисе инструкций процессора.

                        • Dmitriy

                          Хорошо, но ссылка на вставку же есть...

                          • Andrey

                            High Level Synthesis это сишный код в RTL

        • Andrey

          Тут на соседнем канале рассказывали историю как пришел дедок который не верил в языки описания аппаратуры типа Verilog и все делал по старинке на триггерах) Его типа спросили а FFT за сколько вы сделаете - он такой "ну недели за две если не отвлекаться..." ))))

        • Dmitriy

          Ну, ардуина, это для школьников неплохо.... Они тож стотысяч зарплаты хотят?

Не нашли ответ?

Вам также может быть интересно