Настройка MASM32

Discussion in 'WASM.BEGINNERS' started by Luzer, Jul 17, 2005.

  1. Quantum

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

    Blog Posts:
    0
    Тут лежит FASM для DOS'а.



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



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

    S_T_A_S_ New Member

    Blog Posts:
    0
    у меня есть оригинальный masm 6.11 (5,7Mb)

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



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

    отличается немного синтаксисом (IMHO в лучшую сторону:
    Code (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]


    Пример из Калашникова будет выглядеть так:
    Code (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

    Blog Posts:
    0
    Quantum

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

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

    S_T_A_S_

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

    S_T_A_S_ New Member

    Blog Posts:
    0
  5. Luzer

    Luzer New Member

    Blog Posts:
    0
    Скачал фасма, значит в фасме 32

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

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

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

    Blog Posts:
    0
    Luzer



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





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

    Luzer New Member

    Blog Posts:
    0
    Quantum

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




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


    Code (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 Паладин дзена

    Blog Posts:
    0
    Luzer



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





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

    zzzyab New Member

    Blog Posts:
    0
    А чем вообще отличаеться масм32 от обычного масма.

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



    Luzer

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

    Luzer New Member

    Blog Posts:
    0
    zzzyab

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

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



    Quantum

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

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

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

    Blog Posts:
    0
    Luzer

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





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

    Luzer New Member

    Blog Posts:
    0
    Ну ладно, черт с редактором, но полное выполнение команд, для компиляции из доса, не происходит, файл объект не появляется.

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

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

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

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



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

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

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

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





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

    Luzer New Member

    Blog Posts:
    0
    Все, получилось настроить фасм!

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

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

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

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

    ALLeX Member

    Blog Posts:
    0
    Не встречалось ли кому описание ключей программы cvtres.exe (Microsoft Windows Resource To Object Converter), подробнее чем запуск с /?

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

    Y_Mur Active Member

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

    Y_Mur Active Member

    Blog Posts:
    0
    тфу блин, совсем ALLeX запутал, нет, чтобы новую тему создать, отвечаю тут на доисторические вопросы :)))
     
  18. ALLeX

    ALLeX Member

    Blog Posts:
    0
    Но, увы, не мне...

    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))