На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (5) 1 2 [3] 4 5  все  ( Перейти к последнему сообщению )  
> Самый популярный ассемблер , Голосуем!
   
Укажите Ваш любимый ассемблер:
Гости не могут просматривать результаты голосования.
Гости не могут голосовать 
    А мне as11 нравится. Под емулятор PDP11.
    Features:

    1. Поддержка макросов: no
    2. Генерация объектного кода: no ( exe only )
    3. Поддержка мультимодульности: no
    4. IDE: Yes, win notepad!
    5. Поддержка расширенных команд PDP11: yes! ( правда только одна, SOB )
    6. Максимальная длина меток: 5 chars
      Предпочитаю TASM , а про всякие вузы ничего не знаю ;)
        Цитата myaut @ 18.07.04, 23:50
        Программа debug из win98 ;)

        :)

        Ай молодца!!
        Только это не компилятор, но поиграться с ним можно вдоволь:)

        И ты очень уж сильно урезал область существования этого отладчика, так как этот debug был (и есть) во всех операционных системах от била гейтса начиная с MSDOS 2.0 и заканчивая XP.
          Turbo Assembler (TASM) давно мертвый и вонючий труп.
          Macro Assembler (MASM/MASM32) хорошая вещь - реинкарнация. будете праведными - тоже возродитесь в лучшем теле. другими словами _очень рульная вещь_.
          TASM для DOS, MASM32 для Windows огурцы с молоком.
          Netwide Assembler (NASM) очень, очень хороший проект.
          Flat Assembler (FASM) САМЫЙ ЛУЧШИЙ АССЕМБЛЕР и FASM - синонимы.
          High Level Assembly Language (HLA) очень, очень хороший проект.
          GoAsm можно и debug поюзать
          SpAsm/RosAsm очень интересный(е) проект(ы).
          Pass32 а почему c-- забыли?
          gas/as86/OSIMPA(SHASM) протестантизм тоже приветствуется.

          ;)
            Вай, вай - давно мертвый и вонючий труп.
            А хотиш я тебе щас недостатки твоих любимых и почитаемых FASM и NASM сообщу.
            Такая предположим ситуация.
            Мне надо написать прогу под .286.
            Только не надо здесь выступать что это тоже труп.
            Это пример :)
            С остальными процами та же ситуация.
            Пишу значит прогу.
            Опа - компилирую. И чё??
            А ни чё :) не идёт она под .286
            А почему? А потому что компилятору нельзя указать под какой проц программа.
            В NASM можно (CPU 286 к примеру)- на XOR EAX,EAX ругается, но я и сам для двойки такого не пишу.
            А вот переходы что FASM что NASM near спокойно генерируют, которых на двойке и в помине нет.
            И чё делать - команды в ручную кодировать?
            Лады - можно везде писать jmp short label, тогда компилятор ругнётся если переход слишком длинный будет.
            Но это только пример - ещё со многими опкодами проблеммы.
            А в TASM я спокойно написал .286 и забыл - всё что выходит за рамки указанного проца компилятор сообщает как ошибку.
              Цитата
              Укажите Ваш любимый ассемблер



              ExpandedWrap disabled
                __asm
                {
                }


              :)
                cppasm,
                Цитата cppasm @
                Такая предположим ситуация.
                Мне надо написать прогу под .286.
                Только не надо здесь выступать что это тоже труп.


                А давай предположим, что мне надо написать программу под 8080. Вай-вай-вай, как облажается фасм, он ведь неправильно под нее программу скомпилирует! А вот в тасме я напишу .8080, он на меня ругнется что такого процессора нету, и я пойду спокойно спать.

                Пример не канает, так как такого барахла как 286е уже нигде нету. Другими словами я не выступаю а _утверждаю_ что 286е такой же труп как и тасм.

                Кстати, а ты рабочий 286й щас где-нибудь найти можешь? И что б его еще где заюзать надо было?

                Добавлено
                cppasm,
                Цитата cppasm @
                А почему? А потому что компилятору нельзя указать под какой проц программа.


                Кстати, это не проблема. Макросы в фасме разрешают это очень элегантно решить.
                  286 врядли, 386 или 486 - легко :)
                  Я ничего против FASM и NASM не имею, просто по-моему не стоит априори говорить что TASM умер.
                  Приведи его недостатки что-ли.
                  Я лично пользуюсь под MS-DOS (который по мнению многих тоже умер) и мне нравится.
                  А насчёт макросов - так расскажи как это решить можно.
                    Цитата cppasm @
                    386 или 486 - легко


                    такого добра навалом
                    даже в прайсах еще видел
                    http://comprice.ru/
                      cppasm,

                      Цитата cppasm @
                      286 врядли, 386 или 486 - легко :)

                      ну дык тогда повтори свой вопрос ;) Давай, втягивайся в дискусию. А то это болото немного застоялось :)

                      Цитата cppasm @
                      не стоит априори говорить что TASM умер.

                      А я не априори - я констатирую факт.

                      Ок, давай немного разберем что к чему:
                      • Тасм был спроектирован именно под ДОС, который остался только как учебная платформа для студентов тех преподов, которым за 70 и которые просто не в состоянии запомнить еще хотя бы что-то кроме того, что они 40 лет назад вызубрили, и причем далеко не факт что эта платформа лучше чем линукс или еще какой *никс. Заметь, спроектирован "под ДОС", а не под "Ассемблер х86".
                      • Жалкие потуги добавить в тасм высокоуровневую функциональность (+ поддержка программирования под Windows) с треском провалились, так как они снова попробовали привязать себя к операционной системе, а не к языку.
                      • Хотя макросредства тасма были лучше чем у масма, они все-равно оказались практически не у дел, так как были плохо спроектированы(прошу оценить объемы работ по написанию реализации макросредствами MMX, SEE и т.д. команд).
                      • /Одна из основных причин, почему он давно завонялся/Разработчики давным-давно забили боольшущий болт на тасм. Чего и вам усиленно желаю. А вы этого мертвеца все время ворошите. Пусть починет в бозе, как Ада, Алгол и иже с ними. RIP.
                      • Практически полное отсутствие библиотек. Даже (подчеркиваю - Даже) для Windows. Извините меня, в то время, как на рынке повсеместно лидируют компиляторы других фирм привязывать тасм только к себе - это гениально самоубийственная идея.
                      • И не надо твердить мне на каждом углу что на тасм - лучший для доса и именно там его все юзают - фиг, то что он был написан для доса еще не значит что он лучший. На фасме, например, под дос писать намного легче. Вот попробуйте сделать на тасме и на фасме следующие примеры и сравните: простой COM, простой EXE, мультисегментный EXE, простой резидент, и, главное, DPMI (то-есть смешанный 16- и 32-битный код)?

                      Сразу предупрежу - я на тасме писал более 4х лет. Потом я его поменял на масм, так как начал активно писать под вынь, на котором просидел тоже довольно долго. Щас я, конечно же (хе-хе, ну скажите что вы про это даже не догадывались :)), на фасме. И практически (вот, ключевая фраза "практически" - это должно освидетельствовать мою объективность) полностью доволен. Я могу писать не меняя синтаксиса и логических конструкций языка и под линух, и под винду, и даже полностью самостоятельный код (пр: какую-нибудь ось, загрузчик, вообще биос).
                      Хе, это была однозначно реклама :))

                      Да, и последнее. Не думайте, что наезжая на тасм я наезжаю на всех вас, его юзающих, а, тем более, преуменьшаю его историческую роль (тасмов режим IDEAL в свое время для всех нас был как откровение свыше, etc.). Если Вам хватает и нравится - я совершенно не имею ничего против, есть ведь люди уважающие только debug.exe? Я все это веду к тому, что новички, которые заходят в эту тему выбрать себе лучший инструмент не должны втискивать себя в рамки давно ржавого куска кода. "Он БЫЛ лучшим, так пусть лучшим в нашей памяти и остается".
                        К сожалению ты прав - разработчики на него забили, и это меня огорчает.
                        Но есть ещё WASM, Watcom assembler с совместимым синтаксисом - но опенсорс и вроди развивается, но не так активно как FASM и NASM. Просто FASM лично мне не поднодит, так как не поддерживает OMF, а сишный компилятор, которым я пользуюсь (Open Watcom C/C++), генерирует OMF.
                        Так что прогу я вместе не собиру, или посоветуйте линкер - может есть какой.
                        Конечно можно ещё заюзать coff2omf, но я не пробовал - может он действительно нормально конвертит.
                        Nasm OMF поддерживает, но код практически не оптимизирует.
                        С последних версий есть опция оптимизировать переходы - раньше все генерировал near если явно не указать short.
                        А такие команды как
                        ExpandedWrap disabled
                          mov eax,1
                        не оптимизирует до сих пор, а писать постоянно
                        ExpandedWrap disabled
                          mov eax,byte 1
                        меня задалбывает, и вдруг я где-нить пропущу, всякое бывает. FASM в этом плане гораздо лучше.
                        По тем же причинам меня напрягает постоянно отслеживать каждую команду, особенно в больших прогах.
                        Почему компилится скажем та же cpuid если я код хочу под .486

                        PS: Я кстати тоже загрузчики там всякие на TASM успешно писал, и ядро ОС сейчас на нём же пишу в свободное время. И никаких неудобств не испытываю.
                        Сообщение отредактировано: cppasm -
                          cppasm,
                          Цитата cppasm @
                          Просто FASM лично мне не поднодит, так как не поддерживает OMF, а сишный компилятор, которым я пользуюсь (Open Watcom C/C++), генерирует OMF.


                          Watcom Linker User's Guide
                          The Watcom Linker is ...
                          The following object module and library formats are supported by the Watcom Linker.
                          • The standard Intel Object Module Format (OMF).
                          • Microsoft’s extensions to the standard Intel OMF.
                          • Phar Lap’s Easy OMF-386 object module format for linking 386 applications.
                          The COFF object module format.
                          • The ELF object module format.
                          • The OMF library format.
                          • The AR (Microsoft compatible) object library format.

                          Мда, прочитал и удивился - хороший линкер :) Сегодня попробую поюзать...

                          Добавлено
                          cppasm,
                          Цитата cppasm @
                          Почему компилится скажем та же cpuid если я код хочу под .486

                          ExpandedWrap disabled
                            @CPU = 80486
                             
                            macro .486 { @CPU = 80486 }
                            macro .586 { @CPU = 80586 }
                             
                            macro   cpuid
                            {
                                if  @CPU < 80586
                                    'error: this instruction valid only for 586+'
                                else
                                    cpuid
                                end if
                            }
                            ;------------------------------------------------------------
                            .486
                                cpuid
                            Он бинарники чистые не шарит генерировать, а мне надо :'(
                            Насчёт макросов - прикольно, но это ж с каждой командой так париться.
                            И как всё-таки short и near jmp отличать таким макаром.
                            Сообщение отредактировано: cppasm -
                              Да, и еще. Некоторые 486е cpuid все-же поддерживают. Так что пользуй регистр флагов для идентификации - можно или нет ;)
                                Да я так и делаю, это просто пример неудачный. ;)
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (5) 1 2 [3] 4 5  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1054 ]   [ 16 queries used ]   [ Generated: 18.07.25, 00:37 GMT ]