Как скомпилировать несколько файлов вместе с ml в сборке x86?


Я работаю в сборке x86 в 16 бит. У меня есть три файла, которые должны делиться "переменными между ними" - в основном, сегмент данных. Когда я составляю их, как в следующем:

ml file1.asm,file2.asm,file3.asm io.lib

Они не могут получить доступ к переменным друг друга Как разделить сегмент данных и, следовательно, переменные между файлами? Спасибо!

2 2

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 .