Проблема с локальными переменными в FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем kassak, 15 сен 2008.

  1. kassak

    kassak New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2008
    Сообщения:
    3
    Уже неделю пытаюсь переписать быстрое преобразование Фурье на ассемблер(FASM), но завис на одной проблеме:
    При попытке получить адрес локаоьной переменной компилятор ругается

    Код (Text):
    1. mov EAX,c1 ;<- вот здесь компилятор говорит "Invalid value"
    c1 - локальная переменная, тоже самое если это аргумент функции

    уже все мануалы облазил, а там о локальных не слова((

    Посоветуйте, пожалуйста, что сделать, или что почитать.

    Заранее спасибо)
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    lea eax,[c1]
     
  3. kassak

    kassak New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2008
    Сообщения:
    3
    спасибо, никогда не догадался бы)
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Локальные переменные задаются в макросами, соответственно надо читать
    %fasm%\include\macro\proc32.inc
    При объявлении локальной переменной с1 создается константа с1=ebp-xx, поэтому
    mov eax,ebp-xx не работает.
     
  5. kassak

    kassak New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2008
    Сообщения:
    3
    Самое интересное, что я прочитал макрос, даже понял, что из-за суммы этой не работает, но чтобы разыменовать указатель, а затем получить адрес я не догадался)