Я хочу научиться разделять программу на ассемблере(делаю по подобию описанном в 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 ============================================================================================
переменные, которые используются в модуле, должны быть обьявлены заранее, например - есть файл с точкой входа programma.asm, какие-то функции находятся в модуле modul.asm, если в modul.asm используется переменная, которая обьявлена в programma.asm, компилятор выдаст ошибку - он смотрит файлы в алфавитном порядке. я лично обычно делаю файл aaa.inc и обьявляю все глобальные переменные в нём. _______ что за масм ты скачал? что такое masm32rt.inc? зачем директива .STACK 4096? нафига читать кипа ирвина, если не знаешь элементарных вещей? уроков Icezelion-a - апи, пе, базы данных, драйвера - хватит надолго, а когда они уложатся в голове и ты отработаешь их все ПРАКТИЧЕСКИ, то будет не вопросы задавать, а давать ответы начинаюсчим ушанам
...а разве не видно, что шапки у процедуры нет... В начале файл Ersre.asm был с шапкой. Я к тому, что все равно не компилируется, а масм идущий вместе с книгой делает код из книги, который работает с ошибкой на висте.
Maksim_27_10 А Кип Ирвинг тоже объясняет как напихать все в один файл а потом разделить? Или это ваша собственная мысль? А почему не заставить масм понимать написанное на русском языке?