Объявление extern массива в masm32

Тема в разделе "WASM.ASSEMBLER", создана пользователем Araknu, 27 июл 2010.

  1. Araknu

    Araknu Member

    Публикаций:
    0
    Регистрация:
    25 июн 2010
    Сообщения:
    56
    Не могу понять как объявить через директиву extern массив из другого модуля

    -[.data?
    |[ PUBLIC arr
    |[arr db 256 dup(?)
    |
    |
    -[EXTERN ???????

    Не получается никак, в хелпе ни указан синтаксис объявления, кто знает подскажите плз
     
  2. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Здесь нет массивов. Указать можно только тип и в хелпе всё подробно сказано.
    extern arr:BYTE
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Araknu
    лучше не объявлять внешних переменных
    а объявить функции для работы с массивом - ну как минимум получить адрес его базы (нулевого элемента)
     
  4. Araknu

    Araknu Member

    Публикаций:
    0
    Регистрация:
    25 июн 2010
    Сообщения:
    56
    s_d_f
    Как объявлять простые типы я и так знаю, вы не поняли вопроса, как объявить переменную вида: arr db 256 dup(?)
    В хелпе сказано: Data created with user-defined types, BYTE, WORD, and other types
    +----------------------------------+
    | |
    +-USER.ASM---+-----------+ +-TOOLS.ASM---+----------+
    | | | |
    | EXTERN global:WORD | | PUBLIC Global |
    | | | Global WORD 5 |
    +--------------------------+ +--------------------------+

    Rockphorr
    Спс за ответ, почти так и сделал, перенес все функции которые работают с массивом в один модуль
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Araknu


    Код (Text):
    1. get_array_ofs proc
    2.  
    3. lea EAX,array_instance
    4.  
    5. get_array_ofs endp
    6.  
    7. array_instance BYTE 256 dup (?)
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    в другом модуле используя ... ptr [EAX+EBX] шастаете по массиву как хотите (ebx - индекс)