Разделение программы на Ассемблере.

Тема в разделе "WASM.BEGINNERS", создана пользователем Maksim_27_10, 28 июн 2010.

  1. Maksim_27_10

    Maksim_27_10 New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2010
    Сообщения:
    2
    Я хочу научиться разделять программу на ассемблере(делаю по подобию описанном в Kip Irvine издание 4). Что мне сделать, чтобы все файлы программ скомпилировались(masm32 отказывается компилировать Erste.asm - выдаёт какую-то ошибку и пишет про .MODEL, но компилирует Main.asm) ? Я использую masm32(скачал недавно на masm32.com).

    Не воспринимайте этот пример как код делающий какую-либо работу - этот код не делает никакой работы! Не предлагайте запихать всё в один файл(это бессмысленно - основная задача осуществить разделение)!

    Functions.inc
    ============================================================================================
    .486
    .MODEL flat, stdcall
    .STACK 4096

    Erste PROTO
    Zweite PROTO
    Dritte PROTO
    ============================================================================================

    Main.asm
    ============================================================================================
    include Functions.inc
    include \masm32\include\masm32rt.inc

    .code
    main PROC
    call Erste
    call Zweite
    call Dritte

    INVOKE ExitProcess, 0
    main ENDP

    END main
    ============================================================================================

    Erste.asm
    ============================================================================================
    include Functions.inc

    .code
    ret
    Erste ENDP
    END
    ============================================================================================

    Zweite.asm
    ============================================================================================
    include Functions.inc

    .code
    call Erste

    ret
    Zweite ENDP

    END
    ============================================================================================

    Dritte.asm
    ============================================================================================
    include Functions.inc

    .code
    call Erste
    call Zweite

    ret
    Dritte ENDP

    END
    ============================================================================================
     
  2. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Maksim_27_10
    а разве не видно что шапки у процедуры нету ???? нету PROC хотя endp присутствует
     
  3. lomik

    lomik New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2010
    Сообщения:
    45
    переменные, которые используются в модуле, должны быть обьявлены заранее, например -

    есть файл с точкой входа programma.asm, какие-то функции находятся в модуле modul.asm,

    если в modul.asm используется переменная, которая обьявлена в programma.asm, компилятор выдаст ошибку - он смотрит файлы в алфавитном порядке.

    я лично обычно делаю файл aaa.inc и обьявляю все глобальные переменные в нём.

    _______

    что за масм ты скачал?
    что такое masm32rt.inc?
    зачем директива .STACK 4096?
    нафига читать кипа ирвина, если не знаешь элементарных вещей?
    уроков Icezelion-a - апи, пе, базы данных, драйвера - хватит надолго, а когда они уложатся в голове и ты отработаешь их все ПРАКТИЧЕСКИ, то будет не вопросы задавать, а давать ответы начинаюсчим ушанам
     
  4. lomik

    lomik New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2010
    Сообщения:
    45
    http://narod.ru/disk/22290277000/masm32.rar.html
     
  5. Maksim_27_10

    Maksim_27_10 New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2010
    Сообщения:
    2
    ...а разве не видно, что шапки у процедуры нет...

    В начале файл Ersre.asm был с шапкой.
    Я к тому, что все равно не компилируется, а масм идущий вместе с книгой делает код из книги, который работает с ошибкой на висте.
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.890
    Maksim_27_10
    А Кип Ирвинг тоже объясняет как напихать все в один файл а потом разделить? Или это ваша собственная мысль? А почему не заставить масм понимать написанное на русском языке?
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Maksim_27_10
    а если у меня все скомпилируется ?? только шапку поправлю