Программирование на Ассемблере

Использование общих областей памяти


При составлении многомодульных программ программисты часто используют внешние переменные, что позволяет один раз выделить память под переменную и один раз ее инициализировать. Такие переменные определяются в сегменте данных одного из модулей и задаются в директиве 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



Содержание раздела