Компиляция программы

Тема в разделе "WASM.BEGINNERS", создана пользователем lexer, 9 июл 2006.

  1. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    Наверное самый тупой вопрос....
    Как мне в MASM32 скомпиллировать программу?
    Я создаю файл *.asm, например на С:\\eee.asm, открываю его через qeditor.exe, далее console build all, ругается, создает там файл *.obj.....и как же создать com или exe файл?
    Ошибка: fatal error LNK1190: invalid fixup found, type 0x0001 (Link error)
    Заранее спасибо...
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Пытаешься создать проги для dos? Возьми старые версии масма. Пакет masm32 для windows только.
     
  3. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    нет для Windows..
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    lexer
    Используй fasm, удобней и проще!
     
  5. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Посл. версия компилятора MASM всё ещё умеет генерировать 16-битные obj.
    Что в asm файле и какие опции ml ?
     
  6. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    lexer
    Найти в сети Питера Абеля не проблема, а с сайта (текущего) и Зубкова, там есть то что тебе надо! Плюс, зайди в сорцы, там есть много под дос, глянь команды. Может че начудил!
     
  7. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    fasm есть...попробую,отпишусь

    А код программы такой.....

    CSEG segment
    org 100h

    Start:

    mov ah,9
    mov dx,offset String
    int 21h

    mov ah,10h
    int 16h

    int 20h

    String db 'Ждем нажатия клавиши...$'

    CSEG ends
    end Start
     
  8. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    все так?
     
  9. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    То что org 100h то это надо! т.к. префикс программного сегмента для досовских бинарных (обычно расширение *com) никто не отменял! Все сегментные регистры на один сегмент! ибо в сегменте и стек и данные и код!
     
  10. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    и в фасме сорцы\дос
     
  11. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    те все правильно?
     
  12. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    lexer
    а говоришь для Windows.
    Тебе надо линкер от masm 6.x.
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    green
    Бодяжь фасмом и не мучайся! Врядли ты щас меньше чем 386 комп найдешь, так что фасм пойдет!
    Да и цель ДОС изучать? Лучше знать асм? Да ну брось ты, он вымер, щас осталось очень мало, хоть они есть ЭВМ которые работают с этой ОСью. Думаю тебе не ДОС надо колупать а Винду или НИксы больше пользы от потраченного времени
     
  14. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    в fasme проги компиллируются как *.exe?
     
  15. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    lexer
    Как скажешь командами, так и будет! Хошь *.dll, хошь *.exe (PE,MZ) а хошь вообще *.com Ведь фасм позволяет ассеблить код, не делая какой либо формат!!! А что такое *.com ? Правильно, напесал кода, сегментные регистры приравнял, org 100h добавил, а с ассеблированную штуку в *.com переименовал, все у тебя бинарник есть!
     
  16. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Дык, если у него только объектники получаются, значит надо линкер запустить...
     
  17. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Вот тебе Самая минимальная программа под Ms-Dos:

    minimal.com consist 0xCD, 0x20
     
  18. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    EvilsInterrupt
    А по-моему минимальный сом из одного байта состоит - ret(n или f, не помню). DOS кладет в стек адрес int 20h перед запуском.
     
  19. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    lexer
    Текст у тебя под ДОС - поэтому нужен старый масм.

    http://www.rusfaq.ru/?Step=info&Action=Question&ID=18207
     
  20. lexer

    lexer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2006
    Сообщения:
    25
    Всем спасибо,
    как будет выглядеть вышенаписанный код под fasm?