Неициализированные данные в fasm, как их делать?!

Тема в разделе "WASM.ASSEMBLER", создана пользователем Z3N, 6 мар 2009.

  1. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Большое спасибо всем кто принял участие в обсуждении вопроса. С вашей подачи мне удалось выяснить в чём было всё дело. Тут прозвучало несколько решений моей проблемы и каждое из них по-своему правильное....
    Действительно, можно резервировать место при помощи rb,rw,rd, что полностью равнозначно конструкции db ?,dw ?,dd ?. Ещё тут прозвучало мнение о том, что данные надо размещать в конце - это очень близко от истины. Дело в том, что данные надо размещать не просто в конце секции, а ещё и глядеть чтобы они не перемешивались с другими данными, поясню....
    gg dd 256 dup(?)
    lol dd 'imho'
    ^^^ Секция до lol будет заполнена нулями

    lol dd 'imho'
    gg dd 256 dup(?)
    ^^^ Вот, это совсем другое дело, нули просле lol - просто выравнивание секции...

    lol dd 'imho'
    gg dd 256 dup(?)
    ;-------------------TLS---------
    data 9
    dd a ; StartAddressOfRawData;
    dd a ; EndAddressOfRawData
    dd a ; AddressOfIndex
    dd c ; AddressOfCallBacks
    a dd 0 ;
    c dd callback ; Array Of Callbacks
    dd 0 ; NULL - end of Array Of Callbacks
    end data
    ;;-----------------END_TLS-------
    ^^^ В этом случае сеция опять будет заполнена ненужными нулями. Можно сказать, что именно секция TLS заставила обратиться на форум. Надо чтобы данные распологались не только в конце секции, а чтобы за ней шла другая секция (либо конец файла), и не данные или директория, как в моем случае. Всем огромное спасибо, с вашей помощью я уменьшил размер файла на треть... ;).