Настройка MASM32

Тема в разделе "WASM.BEGINNERS", создана пользователем Luzer, 17 июл 2005.

  1. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Тут лежит FASM для DOS'а.



    TASM можно найти в сети (ищите TASM.EXE + TLINK.EXE). Если не найдёте, могу выслать мылом.



    MASM не знаю где можно достать.
     
  2. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    у меня есть оригинальный masm 6.11 (5,7Mb)

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



    хотя конечно же лучше fasm использовать. никаких проблем с линкером и ключами командной строки!

    отличается немного синтаксисом (IMHO в лучшую сторону:
    Код (Text):
    1. MASM                               FASM
    2.  
    3. ; загружаем адрес метки
    4. mov eax, offset label              mov eax, label
    5.  
    6. ; загружаем данные по адресу
    7. mov eax, dword ptr[label]          mov eax, [label]


    Пример из Калашникова будет выглядеть так:
    Код (Text):
    1.     org 100h
    2.  
    3.     mov ah, 9
    4.     mov dx, Message
    5.     int 21h
    6.  
    7.     int 20h
    8.  
    9. Message db 'Hello, world!$'


    ЗЫ: Лучше скачать версии и для DOS и для виндос: в первую входят примеры (сам компилятор не нужен, поскольку он предназначен для запуска в ДОС), а со второй идёт fasmw - редактор со встроенным компилятором (обычный компилятор тоже есть)
     
  3. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Quantum

    Ну там у Калашникова есть пример и для 32-х...

    Скопировал я пример в масм редактор и всеравно ничего не компилируется, все таже ошибка:dntknw:

    S_T_A_S_

    А где лежит фасм для 32-х разрядных? дай ссылочку, а то гляжу опять что - то не то скачаю.
     
  4. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
  5. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Скачал фасма, значит в фасме 32

    открыл файл из примера, и попробовал запустить - нефига, тоже самое при компиляции!

    Какая - то ошибка не понятная, даже объяснения нету:dntknw:
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Luzer



    Приведите этот пример.





    Очевидно там инклуд (include) какой-то используется и необходимо указать полный путь или настроить переменную окружения. Гляньте для начала какой-нибудь туториал по фасму. 5 минут потратите.
     
  7. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Quantum

    Вот, "Это голый скелет программы" :
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3.  
    4. .data
    5. .code
    6. start:
    7. end start




    А вот что выводится при колмпиляции в досовском окошке:


    Код (Text):
    1. <<<Строчки майкросовта>>>
    2.  
    3. Using codepage 1251 as default
    4. Creating rsrc.RES
    5. RC: RCPP -CP 1251 -f C:\RCa03764 -g C:\RDa0376 -DRC_INVOKED -D_WIND32 -pc\:/ -E -I. -I.
    6.  
    7. RC : fatal error RC1110 : could not open rsrc.rc
    8.  
    9. <<<Строчки майкросовта>>>
    10.  
    11. CVTRES : fatal error CVT1101: cannot open rsrc.res for reading
    12. Для продолжения нажмите любую клавишу .  .  .




    FASM

    Какой еще туториал?Можно бы ссылочку на Туториал...
     
  8. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Luzer



    Вы опять из редактора компилите, вопреки моим рекомендациям, так? Кстати, этот пример совсем пустой. Добавьте хоть строчку с retn перед end start, чтоб экзешник потом можно было запустить.





    Хоть тут почитайте.
     
  9. zzzyab

    zzzyab New Member

    Публикаций:
    0
    Регистрация:
    13 май 2004
    Сообщения:
    115
    А чем вообще отличаеться масм32 от обычного масма.

    Тот же ml и те же параметры комстроки. Всегда пользовалься обычным им можно делать программы для DOS,WIN16 и WIN32.



    Luzer

    Советую не возиться с этим масм32, переходи на обычный.
     
  10. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    zzzyab

    Как Я понял, то обычный под Дос:dntknw:

    Я вообще весь запарил с ними:)



    Quantum

    Нет, я просто хочу разобраться, как редактор компилит, ведь всетаки же проще!

    А через командную строку всеравно не получается, чтобы я не делал!
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Luzer

    Чтобы разобраться, нужно сначала сделать всё ручками, а потом уже переходить на редактор или батник. Тогда (и только тогда!) будет проще.





    Подробнее.
     
  12. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Ну ладно, черт с редактором, но полное выполнение команд, для компиляции из доса, не происходит, файл объект не появляется.

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

    "Обязательно выполняйте настройку Масма32 в соответствии с пунктами, а то ничего работать не будет!"

    Там были пункты, уже не вспомню.

    Но тогда вроде тоже не получилось...



    Всеже, как мне быть?

    Как например, другие настроили?
     
  13. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Ничего настраивать не надо (исключение составляет тот случай, если Вы установили Масм32 в отличный от C:\masm32\ каталог). Иногда масм32, при установке, не может собрать либы (что-то в процессах винды мешает ему). Поэтому настоятельно рекомендуется закрыть все окна в винде перед установкой. Тем не менее, этот баг наблюдается редко и решается банально - переустановка масма32.





    Но что-то же пишут ml.exe либо link.exe либо сам интерпретатор командной строки в ответ: ошибку, warning, ... Только не надо опять про RC!
     
  14. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Все, получилось настроить фасм!

    Теперь нужна чисто помощь професионала!

    Я непонимаю какую версию фасма я скачал, вам виднее, у меня это придет со временем.

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

    Хотел пропросить ссылочку на хороший учебничик под фасм.
     
  15. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Не встречалось ли кому описание ключей программы cvtres.exe (Microsoft Windows Resource To Object Converter), подробнее чем запуск с /?

    PS. Странно - весь msdn перерыл - ничего не нашёл. К чему бы это?
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Luzer
    Батник который сначала ищет ресурсный файл одноимённый заданному, если не находит то rsrc.rc, а если и его нет то компилит без ресурсов.
    Запуск: RunMASM имя_файла_без_расширения
    И скачай masm32 v9 там скорость компиляции заметно выше и имхо мелкие глюки подправлены.
     
  17. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    тфу блин, совсем ALLeX запутал, нет, чтобы новую тему создать, отвечаю тут на доисторические вопросы :)))
     
  18. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Но, увы, не мне...

    PS.
    Кстати.. Ещё один батничек на избитую, древнюю (но поднятую ;o) тему компиляции.

    Фичи:
    1. Понимает несколько простых команд
    (Без обработки ошибок. Так что легко можно попытатся скомпилить файло как exe и dll одновременно. Короче защиты от дурака нет, т.к. сильна надеюсь они в основном по другим форумам сидят ;o)
    2. Запускает компилер/линкер для GUI (с .rc/.res файлом) или консольных проектов, EXE или DLL, debug/release
    3. Если натравить на .res файл сделает правильную resource only DLL
    4. Если находит в папке makefile, запускает nmake.exe
    5. Можно легко настроить на компиляцию определенного проекта без использования ком. строки
    (Все основные настройки вначале. Напр. установите переменную Target=имя файла, и батник можно запускать без параметров)

    PPS.
    Для тех кто так и не нашел свою IDE (типа меня например) ;o))