Как создать переменную?

Тема в разделе "WASM.BEGINNERS", создана пользователем mazay, 13 июл 2007.

  1. mazay

    mazay New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    6
    Как создать переменную типа DWORD* dwID = new (DWORD); на ассемблере(указатель+выделить память)? Пишу на МС ВС, глобальные нельзя. Делаю так:
    MOV EAX,4 //SIZEOF ID
    PUSH EAX
    PUSH GMEM_FIXED
    MOV EBX,EBP // не знаю что это,
    ADD EBX,OFFSET _GlobalAlloc // но работает =)
    CALL [EBX]
    Если положить параметр ebx, то библиотечная функция падает. Что не так?
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    А почему нельзя просто написать Имя_переменной dd 0 ?
    Если это нужно сделать прямо в секции кода, то
    jmp @f
    Имя_переменнй dd 0
    @@: Все остальное...

    А то, что написано у тебя, насколько я понял, это вызов функции.
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    а если надо указатель на переменную, то лучше call @f, а не jmp @f
     
  4. Consto

    Consto New Member

    Публикаций:
    0
    Регистрация:
    20 апр 2006
    Сообщения:
    79
    если внутри процудуры то

    local dw,pdw:dword
    mov eax,addr dw
    mov pdw,eax