как работает директива SEGMENT AT в MASM

Тема в разделе "WASM.BEGINNERS", создана пользователем FLASH300, 14 ноя 2009.

  1. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    Привет всем!
    Есть такая задача: нужно поместить некоторую дату по жестко фиксированному виртуальному адресу. Я не хочу выделять память по определенному адресу и боятся что этот адрес может быть занят чем то другим, а хочу сделать секцию с полной уверенностью что она будет загружена по определенному адресу.Нашел директиву SEGMENT в которой опция combine вроде должна заставить компилятор это сделать

    вот так работает

    _data segment dword PUBLIC use32 'qdata'
    vasj dd 0
    _data ends
    _data segment dword PRIVATE use32 'qdata'
    vasj dd 0
    _data ends
    _data segment dword COMMON use32 'qdata'
    vasj dd 0
    _data ends

    а так не работает

    _data segment dword AT 00418000h use32 'qdata'
    vasj dd 0
    _data ends

    есть документ в котором туманно объясняется работа директивы
    http://msdn.microsoft.com/en-us/library/d06y3478(VS.80).aspx

    ни каких примеров не найдено может кто то объяснит что это там за выражение address и как оно должно выглядеть может оно вообще не о том?