Использование общих областей памяти
При составлении многомодульных программ программисты часто используют внешние переменные, что позволяет один раз выделить память под переменную и один раз ее инициализировать. Такие переменные определяются в сегменте данных одного из модулей и задаются в директиве PUBLIC этого модуля, а во всех модулях, где используются эти переменные, они определяются в директиве EXTRN.
Пример. Составить функцию вычисления суммы двух чисел, передавая исходные данные через внешние переменные.
; главная программа
ideal
p686
model flat
extrn ExitProcess:proc
extrn Summa:proc
dataseg
y dd 3
x dd 5
z dd ?
public x
public y
codeseg
begin:
call Summa
mov [z], eax
call ExitProcess
end begin
; Функция
ideal
p686
model flat
extrn x:dword, y:dword
codeseg
proc Summa
public Summa;
mov eax, [x]
add eax, [y]
ret
endp
end