хочу сделать первую прогу! А не получается...

Тема в разделе "WASM.BEGINNERS", создана пользователем Abizian, 21 май 2009.

Статус темы:
Закрыта.
  1. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    Здрасьте!
    Такой вопрос от нуби:
    Начал читать Крупника. Хотел сделать первую прогу. Установил Far, myasm. Создал папки, кот. нужны. Создал файлы amake.bat и l11.asm. Добавил в "Переменных средах" Patch=c:\ temp; c:\myasm\bin. Перезагрузил комп. Ввожу в командной строке Far: amake l11... и ни фига! ни чего не создает. Никаких тебе .exe, .obj. В чем проблема не пойму хоть убей...
     
  2. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    сначала бросаешь играть во всякое онлайн-гов..о
    потом читаешь многа и упорно.

    "Переменных средах" Patch=c:\ temp; c:\myasm\bin.
    завязывай с игрульками, говорю же... переменная называется Path
     
  3. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    а вообще, скачай пакет TASM5.0
    как по мне, идеально для начинающего
    ещё вполне неплох MASM, который выложен на главной странице сайта, он есть в инструментах
     
  4. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    Ну не знаю. Сам тоже начинал с TASM.
    Но рекомендовал бы fasm. Там ничего лишнего. В тасме много заморочек.
     
  5. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    мне фасм нравится
     
  6. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    зато в других легче будед)
     
  7. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    ну да Path. У меня там в общем, правильно записано. Это я здесь ошибся :)
    кстати, насчет этой переменной: у меня там кроме c:\ temp; c:\myasm\bin ещё указаны пути к другим прогам, кот. я раньше устанавливал. Мож из-за этого не работает?
     
  8. maverick

    maverick New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2008
    Сообщения:
    148
    в батнике в конце pause напиши
     
  9. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    у меня есть TASM 5+ и MASM32 v10. Тока я не знаю что с ними делать. Хотел у Крупника ("Ассемблер. Самоучитель") вычитать последовательность действий. Типа "для особо одаренных". Но у него там какие-то заморочки.
    Во-первых, у меня сначала его myasm не распаковывался из Far. Пришлось в винде папку с дистрибутвом перетаскивать в с:\
    Во-вторых, в книжке похоже есть опечатки. А очепятка для нуби смертельна :)
     
  10. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Abizian
    ёпрст...
    1. Не надо следовать один в один инструкциям, не понимая, для чего это. Лучше потерять день или 2, но разобраться, за коим шутом надо делать вот так, почему именно так, и как можно еще.

    2. Написанию ключевых слов, имен предопределенных переменных, операторов и т.п. надо следовать один в один - потому что так сделано.

    Конкретно по path: это список путей, в котором будет производится поиск того, что ты пытаешься запустить. Поиск происходит сначала в текущем каталоге, потом в системном, потом в путях, указанных в переменной path, в том порядке, в котором они указаны. Отсюда:

    - если ты запускаешь что-либо из каталога, где находится твой масм, то никаких путей тебе не надо
    - все запускается либо в ФАРе, либо в командной строке (cmd), чтоб не закрылось. Так или иначе, на экране будет что-то (бла-бла-бла, файл не найден, бла-бла-бла не является исполняемым файлом или командой, бла-бла-бла ошибка номер 345678: кривые руки, и так далее) - это что-то НАДО прочитать. Оно не просто так пишется, для красоты, чтоб строчки бегали. Это важная информация, по которой любой обязан сообразить, что, собственно, не так.
    - написать make слишком круто, не представляя, что делает компилятор, и какие у него опции. Сначала будь добр, набери в командной строке <имя компилятора><нужные опции><имя файла>, потом, когда у тебя не останется сомнений, что нужно именно это, всю строчку с опциями можно в батник запихнуть.
    -- да, в книге может быть готовый пример. Но а) может быть типографская ошибка б) если бы всё сводилось именно к этому одному набору опций, то компилятор делал бы это по умолчанию. Сначала прочитай про ключи (обычно запуск компилятора без параметров выводит целую простыню справки на экран), потом делай.
    -- версия компилятора может быть другой. Хотя как правило, ключи сохраняются от верси к версии, проверь, что компилятор Крупника, и твой - это одно и то же :)
     
  11. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    ага, вот он чо пишет:

    C: \temp> amake l11

    C: \temp>ml /c /coff "l11.asm"
    "ml" не является внутренней или внешней командой, исполняемой программой или пакетным файлом

    С: \temp>link /SUBSYSTEM:CONSOLE "l11.obj"
    "link" не является внутренней или внешней командой, исполняемой программой или пакетным файлом
     
  12. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    Ну вот видишь. Система не знает, где находится ml. Как это исправить, думай сам. Например, пиши не "ml", а "путь\ml".
     
  13. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    А вообще, это слишком уж нубский вопрос. С такими вопросами желательно разбираться самостоятельно.
     
  14. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    дык уже неделю разбираюсь. Сначала начил читать Юров "Ассемблер. Учебник для ВУЗов". Но там жуть :) Там сначала идет описание устройства процессора IA-32. Неделю угробил, чтоб дойти до главы "Первая программа", после чего не выдержал, бросил все нах... Начал чтить Крупника. Там вроде попроще.

    я запускаю из папки temp. Там у меня amake.bat и l11.asm

    я вообще тока вчера допёр, что на деле работать нужна с тремя компонентами: компилятор - делает файл .obj; компоновщик - делает екзешник, и отладчик - типа "пусть будет" :)

    ничо не понял, что нужно сделать... чо за опции? имя файла с расширением или без?

    где вообще можно почитать что-нить хорошее для "совсем уж новеньких"?
     
  15. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Код (Text):
    1. C:\MASM611\BIN>ML.EXE
    2. Microsoft (R) Macro Assembler Version 6.12.7164
    3. Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.
    4.  
    5. usage: ML [ options ] filelist [ /link linkoptions]
    6. Run "ML /help" or "ML /?" for more info
    Вот так и запускаем.
    Код (Text):
    1.         ML [ /options ] filelist [ /link linkoptions ]
    2.  
    3. /AT Enable tiny model (.COM file)         /nologo Suppress copyright message
    4. /Bl<linker> Use alternate linker          /Sa Maximize source listing
    5. /c Assemble without linking               /Sc Generate timings in listing
    6. /Cp Preserve case of user identifiers     /Sf Generate first pass listing
    7. /Cu Map all identifiers to upper case     /Sl<width> Set line width
    8. /Cx Preserve case in publics, externs     /Sn Suppress symbol-table listing
    9. /coff generate COFF format object file    /Sp<length> Set page length
    10. /D<name>[=text] Define text macro         /Ss<string> Set subtitle
    11. /EP Output preprocessed listing to stdout /St<string> Set title
    12. /F <hex> Set stack size (bytes)           /Sx List false conditionals
    13. /Fe<file> Name executable                 /Ta<file> Assemble non-.ASM file
    14. /Fl[file] Generate listing                /w Same as /W0 /WX
    15. /Fm[file] Generate map                    /WX Treat warnings as errors
    16. /Fo<file> Name object file                /W<number> Set warning level
    17. /FPi Generate 80x87 emulator encoding     /X Ignore INCLUDE environment path
    18. /Fr[file] Generate limited browser info   /Zd Add line number debug info
    19. /FR[file] Generate full browser info      /Zf Make all symbols public
    20. /G<c|d|z> Use Pascal, C, or Stdcall calls /Zi Add symbolic debug info
    21. /H<number> Set max external name length   /Zm Enable MASM 5.10 compatibility
    22. /I<name> Add include path                 /Zp[n] Set structure alignment
    23. /link <linker options and libraries>      /Zs Perform syntax check only
    Значит что?
    Если надо делать .com-файлы, то нужна опция /AT
    Если нужен .obj для последующей линковки с ЯВУ, /c
    Если нужен детальный листинг, то /FlListing.lst /Sa
    И так далее. Когда в какой-то опции сомневаешься - не пиши. Посмотри на результат, если не получилось то, что надо - обычно становится ясно, что добавить

    Имя файлов обычно с расширением :)
     
  16. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    еееееееесть!!!!!!!! получилось!!!!!
     
  17. Abizian

    Abizian New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    16
    чувствую себя крутым программёром :) как будто операционную систему написал :)
     
Статус темы:
Закрыта.