FASM - Как обратится к полям структуры зная ее адрес

Тема в разделе "WASM.BEGINNERS", создана пользователем gershkovich, 7 июл 2006.

  1. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Привет всем!

    Допустим есть структура:
    Код (Text):
    1. struct my_struct
    2.   a_field dw 0
    3.   b_field dw 0
    4. ends
    из некой процедуры я получаю указтель на нее
    Код (Text):
    1. pointerToMyStruct dw 0
    2. stdcall ......
    3. mov dword ptr pointerToMyStruct, eax
    Как обратиться к полям структуры на FASM-е
    не высчитывая смещения полей ?
    тпа такого :
    Код (Text):
    1. pointerToMyStruct.b_field
    Или придется все таки высчитывать ?

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

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Указатель - это переменная, содержащая адрес, по которому лежат данные.
    Код (Text):
    1. mov  eax,[ptr]
    2. mov  [eax].my_struct.a_field,1
    3.  
    4. ; используя virtual:
    5. mov  edx,[ptr]
    6. virtual at edx
    7.   .mst my_struct
    8. end virtual
    9. mov  [.mst.a_field],1
     
  3. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    mov xx, word [my_struct.a_field]
    mov xx, word [exx+my_struct.a_field]
     
  4. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Понятно, просто к указателю добавляется имя структуры.
    Как я сам не допер ?

    Спасибо, Студент.
    Спасибо, Доктор.
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    > mov xx, word [my_struct.a_field]
    my_struct - это тип