Как скомпилировать несколько файлов вместе с ml в сборке x86?
Я работаю в сборке x86 в 16 бит. У меня есть три файла, которые должны делиться "переменными между ними" - в основном, сегмент данных. Когда я составляю их, как в следующем:
ml file1.asm,file2.asm,file3.asm io.lib
Они не могут получить доступ к переменным друг друга Как разделить сегмент данных и, следовательно, переменные между файлами? Спасибо!
2 ответа:
Примерно так же, как в C, вы создаете заголовок (обычно задается расширение ".inc"), который содержит внешние объявления для того, что содержится в другом файле, например:
;file def_data.asm: .586P .model flat, c .data myword dd ? end ; file def_data.inc: externdef myword:dword ; file use_data.asm: .586P .model flat, c include def_data.inc .code myproc proc mov eax, myword myproc endp end
Это выглядит релевантно: директивы PUBLIC, EXTERN и EXTRN и директива EXTERNDEF .