Адреса и указатели...

Тема в разделе "WASM.BEGINNERS", создана пользователем KingT, 31 янв 2007.

  1. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Если в программе определяем массив:
    Message db 1024 dup(0)
    то можно утверждать,что переменная Message будет указывать на нулевой элемент массива?
    и тогда:
    mov eax,Message
    add eax,5; eax указывает на 5й элемент массива?
    если так то что дает offset Message?

    ЗЫ:Почему не работает FAQ на форуме?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    А проверить?
    Message - это сам элемент, причём mov eax, Message, возьмёт не байт, а дворд.
     
  3. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    Помогите разобраться с передачей указателей в функции новичку :).
    Есть функция -
    Код (Text):
    1. func proc data: PVOID
    2.     invoke WriteConsole, cout,ADDR data,11, NULL, NULL
    3.     ret
    4. func EndP
    и
    Код (Text):
    1. LOCAL   buf[32]  :BYTE
    , который определен в другой функции.

    Вот как вызвать func, чтобы все работало, а не получалась аброкадабра.

    З.Ы.Не пинайте сильно за такой вопрос.
     
  4. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    если data уже указатель, то так
    invoke WriteConsole, cout, data,11, NULL, NULL
     
  5. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    (Еще один нубский вопрос))
    Код (Text):
    1. func proc data: BYTE
    2.     invoke WriteConsole, cout,ADDR data,11, NULL, NULL
    3.     ret
    4. func EndP
    А если так? :) (Суть в том, что обязательно должно быть ADDR data)
     
  6. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    wow wow wow не частите..
    KingT
    вообще советую смотреть отладчик (c)
    LB_K
    Код (Text):
    1. func proc data: BYTE
    2.     invoke WriteConsole, cout,ADDR data,11, NULL, NULL
    3.     ret
    4. func EndP
    вообще-то лучше что-бы все элементы передаваемые через стэк были DWORDами под windows...
    АDDR x заменяется на lea eax,x push eax, вот теперь и думай в чём разница.
    тебе нада передать адрес, а в байт адрес никак не уместиться ему треба аж 4 их..
     
  7. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Почему FAQ не работает,очень нада!!!!
     
  8. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    KingT
    Нормально он работает.
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Ссылки ведут в астрал.
     
  10. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Код (Text):
    1. mov eax,Message
    На FASM это, кстати, возьмёт адрес, а не первые 4 байта.
     
  11. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Как это у меня вот на эту страницу(аттач)
     
  12. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Напримеръ сцылко "Как соеденить две строки" ведет на:

    http://index.php/?action=vthread&forum=7&topic=1591