UbIvItS А какая от этого польза, кроме образовательной? Даже эксплоиты удобнее набивать в отладчике. Great Сайт одного из постоянных участников форума фасм реализован как раз на фасме И даже хостится на собственной оси, которая тоже на фасме реализована.
Учитывая, что платформа x86/x64 + ОС от MS — это ~90% компов, ассемблер для этой платформы не потеряет актуальность никогда. А что касается удобочитаемости кода — так это зависит только от того, кто этот код пишет, и не важно на каком языке. Примерно на десятитысячной строке даже собственноручно писанная прога, если от её написания отвлечься на пару месяцев, становится малопонятной; поэтому комментировать надо всегда. По поводу создания GUI: понятное дело, ассемблер требует более глубокого понимания, но и позволяет создавать очень гибкий код, я контролы писал, выручал товарищей, пользовавшихся в своём проекте контролами, написанными на Delphi; на асме выходит очень «вкусно». Позже кину сюда же линк на разработки контролов на асме другими ассемблерщиками.
и я считаю это маразмом ) можете кидать в меня помидорами для новых процов будет новый асм. я полагаю, что асм рассматривается тут как принцип, а не как конкретный язык
Бебебе. Тогда давайте писать на пхп операционки (а что, при желании интерпретатор можно сделать и чтобы он работал не через сервисы ОС, а ниже, через биос и порты. Ну а компилятор пхп уже есть. осталось тока pe загрузчик реализовать). Давайте вообще сходить с ума и по стенкам лазить. нам ведь законы не писаны, правда? ) Я считаю, что каждый язык под свои конкретные цели, и написание сайтов в цели асма не входит.
я это тоже маразмом не считаю человек работает на другом уровне - можно просто снять шляпу: МОНСТР а вот по каким принципам будут работать новые машины неизвестно - может быть наши потомки вообще будут обходиться без них: Тесла, например, прекрасно обходился без компа)
Ну дык я не предлагаю писать на асме все подряд, а на пхп тем более (гыгы) - полностью согласен что все зависит от задач. Просто человек сделал, что ему хотелось и звучит это очень хорошо, и это лучше чем пиво пить на улице (имхо конечно, а то и в меня помидоры посыпяться ))
Mental_Mirror Если ради эксперимента, это одно дело и мы это не рассматриваем. Однако есть уникумы, которые любят поебаца и написать на асме большой проект вместе со сложным гуи, обработкой данных и прочим..
правда кому как удобно, люблю когда прога с красивым гуи весит 100кб, нежели оналогичная на делфе 5мб) но надо много времени и желания, чтоб токое осущеcтвлять
censored С т.з. скорости данный код вполне оптимален Арифметические add eax,4 разбавляют FPU'шные инструкции, а без fstp st(0) не обойтись, ведь в стеке остаётся лишнее значение. По размеру можно было сделать так: Код (Text): fld dword ptr [eax] add eax,8 fadd dword ptr [eax-4] fstp dword ptr [ecx] add ecx,4 dec edx Но этот вариант более тормозной.
asmfan > А компилеры ещё не делают автоматическую векторизацию операций? intel c - делает за милую душу, но пока руками у меня выходит быстрее. а вот библиотеки у него - очень даже ничего.
Вот интересно, кто-нибудь пользует intrinsic-аналоги асм. вставок? Или это как бесполезная нагрузка для HLL или реальная замена асму?
ASM - это не язык программирования. ASM - это образ мышления. ASM - это язык родной CPU, MCU. ASM - это ...
Асм как язык программирования я вообще не рассматриваю. Пару - тройку экранных листингов набить - это да, можно, а если больше - то нафик такую деятельность, лучше на Си перейду. Вот чего не хватает в Си, так это полноценной поддержки типа бит, и фиксированного определение типов данных на уровне стандарта - LSB/MSB, сколько битов точно в каждом типе данных. А пока ситуация как в пословице "ни рыба, ни мясо". Позиционируется как язык для системных программистов, но важные вещи почему-то недоработали.
MrHammer Битовые поля поддерживаются. Из логических операций не хватает разве что циклического сдвига (rol/ror). Можно реализовать самостоятельно. Это и так известно. Исключение составляет лишь базовый целочисленный тип, т.е. int. Если доработать "важные вещи", получим что-то вроде Java, для системного программирования совершенно непригодное
битовых операций? #define ROL(x, n) (((x)<<(n))|((x)>>(32-(n)))) #define ROR(x, n) (((x)>>(n))|((x)<<(32-(n)))) ? char тоже может быть не 8 бит ну дык задачи разные бывают