
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Страницы: (5) 1 2 [3] 4 5 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
А мне as11 нравится. Под емулятор PDP11.
Features: 1. Поддержка макросов: no 2. Генерация объектного кода: no ( exe only ) 3. Поддержка мультимодульности: no 4. IDE: Yes, win notepad! 5. Поддержка расширенных команд PDP11: yes! ( правда только одна, SOB ) 6. Максимальная длина меток: 5 chars |
Сообщ.
#32
,
|
|
|
Предпочитаю TASM , а про всякие вузы ничего не знаю
![]() |
Сообщ.
#33
,
|
|
|
![]() Ай молодца!! Только это не компилятор, но поиграться с ним можно вдоволь:) И ты очень уж сильно урезал область существования этого отладчика, так как этот debug был (и есть) во всех операционных системах от била гейтса начиная с MSDOS 2.0 и заканчивая XP. |
Сообщ.
#34
,
|
|
|
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) протестантизм тоже приветствуется. ![]() |
Сообщ.
#35
,
|
|
|
Вай, вай - давно мертвый и вонючий труп.
А хотиш я тебе щас недостатки твоих любимых и почитаемых FASM и NASM сообщу. Такая предположим ситуация. Мне надо написать прогу под .286. Только не надо здесь выступать что это тоже труп. Это пример ![]() С остальными процами та же ситуация. Пишу значит прогу. Опа - компилирую. И чё?? А ни чё ![]() А почему? А потому что компилятору нельзя указать под какой проц программа. В NASM можно (CPU 286 к примеру)- на XOR EAX,EAX ругается, но я и сам для двойки такого не пишу. А вот переходы что FASM что NASM near спокойно генерируют, которых на двойке и в помине нет. И чё делать - команды в ручную кодировать? Лады - можно везде писать jmp short label, тогда компилятор ругнётся если переход слишком длинный будет. Но это только пример - ещё со многими опкодами проблеммы. А в TASM я спокойно написал .286 и забыл - всё что выходит за рамки указанного проца компилятор сообщает как ошибку. |
Сообщ.
#36
,
|
|
|
Цитата Укажите Ваш любимый ассемблер ![]() ![]() __asm { } ![]() |
Сообщ.
#37
,
|
|
|
cppasm,
Цитата cppasm @ Такая предположим ситуация. Мне надо написать прогу под .286. Только не надо здесь выступать что это тоже труп. А давай предположим, что мне надо написать программу под 8080. Вай-вай-вай, как облажается фасм, он ведь неправильно под нее программу скомпилирует! А вот в тасме я напишу .8080, он на меня ругнется что такого процессора нету, и я пойду спокойно спать. Пример не канает, так как такого барахла как 286е уже нигде нету. Другими словами я не выступаю а _утверждаю_ что 286е такой же труп как и тасм. Кстати, а ты рабочий 286й щас где-нибудь найти можешь? И что б его еще где заюзать надо было? Добавлено cppasm, Цитата cppasm @ А почему? А потому что компилятору нельзя указать под какой проц программа. Кстати, это не проблема. Макросы в фасме разрешают это очень элегантно решить. |
Сообщ.
#38
,
|
|
|
286 врядли, 386 или 486 - легко
![]() Я ничего против FASM и NASM не имею, просто по-моему не стоит априори говорить что TASM умер. Приведи его недостатки что-ли. Я лично пользуюсь под MS-DOS (который по мнению многих тоже умер) и мне нравится. А насчёт макросов - так расскажи как это решить можно. |
Сообщ.
#39
,
|
|
|
Цитата cppasm @ 386 или 486 - легко такого добра навалом даже в прайсах еще видел http://comprice.ru/ |
Сообщ.
#40
,
|
|
|
cppasm,
Цитата cppasm @ 286 врядли, 386 или 486 - легко ![]() ну дык тогда повтори свой вопрос ![]() ![]() Цитата cppasm @ не стоит априори говорить что TASM умер. А я не априори - я констатирую факт. Ок, давай немного разберем что к чему: Сразу предупрежу - я на тасме писал более 4х лет. Потом я его поменял на масм, так как начал активно писать под вынь, на котором просидел тоже довольно долго. Щас я, конечно же (хе-хе, ну скажите что вы про это даже не догадывались ![]() Хе, это была однозначно реклама ![]() Да, и последнее. Не думайте, что наезжая на тасм я наезжаю на всех вас, его юзающих, а, тем более, преуменьшаю его историческую роль (тасмов режим IDEAL в свое время для всех нас был как откровение свыше, etc.). Если Вам хватает и нравится - я совершенно не имею ничего против, есть ведь люди уважающие только debug.exe? Я все это веду к тому, что новички, которые заходят в эту тему выбрать себе лучший инструмент не должны втискивать себя в рамки давно ржавого куска кода. "Он БЫЛ лучшим, так пусть лучшим в нашей памяти и остается". |
Сообщ.
#41
,
|
|
|
К сожалению ты прав - разработчики на него забили, и это меня огорчает.
Но есть ещё WASM, Watcom assembler с совместимым синтаксисом - но опенсорс и вроди развивается, но не так активно как FASM и NASM. Просто FASM лично мне не поднодит, так как не поддерживает OMF, а сишный компилятор, которым я пользуюсь (Open Watcom C/C++), генерирует OMF. Так что прогу я вместе не собиру, или посоветуйте линкер - может есть какой. Конечно можно ещё заюзать coff2omf, но я не пробовал - может он действительно нормально конвертит. Nasm OMF поддерживает, но код практически не оптимизирует. С последних версий есть опция оптимизировать переходы - раньше все генерировал near если явно не указать short. А такие команды как ![]() ![]() mov eax,1 ![]() ![]() mov eax,byte 1 По тем же причинам меня напрягает постоянно отслеживать каждую команду, особенно в больших прогах. Почему компилится скажем та же cpuid если я код хочу под .486 PS: Я кстати тоже загрузчики там всякие на TASM успешно писал, и ядро ОС сейчас на нём же пишу в свободное время. И никаких неудобств не испытываю. |
Сообщ.
#42
,
|
|
|
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 ![]() ![]() @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 |
Сообщ.
#43
,
|
|
|
Он бинарники чистые не шарит генерировать, а мне надо
![]() Насчёт макросов - прикольно, но это ж с каждой командой так париться. И как всё-таки short и near jmp отличать таким макаром. |
Сообщ.
#44
,
|
|
|
Да, и еще. Некоторые 486е cpuid все-же поддерживают. Так что пользуй регистр флагов для идентификации - можно или нет
![]() |
Сообщ.
#45
,
|
|
|
Да я так и делаю, это просто пример неудачный.
![]() |