fasm local/locals бывают ли инициализированные переменные?

Тема в разделе "WASM.ASSEMBLER", создана пользователем eas7, 12 ноя 2007.

  1. eas7

    eas7 алиса

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    7
    Адрес:
    Москва
    Собственно столкнулась с проблемой:
    proc Bla
    local Threads dd 255 (0)
    locals
    ThreadsB dd 255 (0)
    local
    ret
    endp

    fasm решительно отказывается собирать, ругаяюсь на invalid value, если заменить все (0) на (?), то все просто замечательно.
    Нашла пример в документации к фасму:
    For example file 'data.bin' will include the whole file as binary data and file 'data.bin':10h,4 will include only four bytes starting at offset 10h.
    Это оно как тогда в случаи массива заполненного нулями будет смотреться?
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    macros?
     
  3. eas7

    eas7 алиса

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    7
    Адрес:
    Москва
    Да я в них как-то не особо сильна, если конечно другого пути нету, то придется подучить.
     
  4. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Локальные переменные создаются в стеке. Они всегда НЕ инициализированы. Если нужны 0 в локальном массиве - то явно после этого их туда заносишь. через stosd, к примеру
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В local можно инициализировать переменные, не массивы.
     
  6. BaGiE

    BaGiE New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2005
    Сообщения:
    84
    Адрес:
    Mordor
    Что за фигня. Может я и не понял чего, но local Threads dd 255 dup (0) компилится и фасм вставляет код, кот. будет правда выглядеть в данном случае весьма тупо, но работать будет :)
     
  7. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    А не поделитесь опытом, как в стеке можно что-либо инициализировать?
    Если место под локальную переменную выделяется только после директивы LOCAL ???
    Где физически будет храниться эта инициализированная переменная до этого?
    А если где-то и будет, то какой смысл ее объявлять как локал?
    Глупость сказал, не ?

    [add] Я про масм, но думаю фасм где-то рядом.
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Aspire
    видимо вставляется инициализирующий код вида mov dword [esp+6], 11223344
     
  9. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Great
    А...на этапе компиляции? Ну да. Если тока так.
     
  10. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"