Шаг 7.
Упрощенный режим сегментации

    На этом шаге мы организацию упрощенного режима сегментации.

    И MASM, и TASM поддерживают так называемую упрощенную сегментацию. Мы являемся приверженцами классической структуры ассемблерной программы, но признаем, что упрощенная сегментация довольно удобная штука, особенно при программировании под Windows.

    Суть такой сегментации в следующем: начало сегмента определяется директивой .CODE, а сегмента данных - .DATA. Причем обе директивы могут появляться в тексте программы несколько раз. Транслятор затем собирает код и данные вместе, как положено. Основной целью такого подхода, по-видимому, является возможность приблизить в тексте программы данные к тем строкам, где они используются. Такая возможность, как известно, в свое время была реализована в языке программирования C++. По нашему мнению, она приводит к определенному неудобству при чтении текста программы.


    Замечание. Разумеется, есть директива и для стека - это .STACK, но мы ее почти не будем использовать.

    Ниже представлена программа, демонстрирующая упрощенный режим сегментации.

.386P
;плоская модель памяти
.MODEL FLAT,  STDCALL
;сегмент данных 
.DATA
    SUM DWORD 0 
;сегмент кода 
.CODE
START:
;сегмент данных 
.DATA
    A DWORD 100
; сегмент кода 
.CODE
    MOV ЕАХ,А 
;сегмент данных 
.DATA
    В DWORD 200 
; сегмент кода 
.CODE
    ADD EAX,B
    MOV SUM,EAX
    RET ;выход 
    END START

    На следующем шаге мы перечислим несколько утилит, предназначенных для работы с Ассемблером.




Предыдущий шаг Содержание Следующий шаг