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

Discussion in 'WASM.BEGINNERS' started by Maksim_27_10, Jun 28, 2010.

  1. Maksim_27_10

    Maksim_27_10 New Member

    Blog Posts:
    0
    Я хочу научиться разделять программу на ассемблере(делаю по подобию описанном в 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

    Blog Posts:
    0
    Maksim_27_10
    а разве не видно что шапки у процедуры нету ???? нету PROC хотя endp присутствует
     
  3. lomik

    lomik New Member

    Blog Posts:
    0
    переменные, которые используются в модуле, должны быть обьявлены заранее, например -

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

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

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

    _______

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

    lomik New Member

    Blog Posts:
    0
    http://narod.ru/disk/22290277000/masm32.rar.html
     
  5. Maksim_27_10

    Maksim_27_10 New Member

    Blog Posts:
    0
    ...а разве не видно, что шапки у процедуры нет...

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

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    Maksim_27_10
    А Кип Ирвинг тоже объясняет как напихать все в один файл а потом разделить? Или это ваша собственная мысль? А почему не заставить масм понимать написанное на русском языке?
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Maksim_27_10
    а если у меня все скомпилируется ?? только шапку поправлю