Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Непонятки с Asm
Посл.ответ Сообщение

Ранг: 22.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 ноября 2006 08:18
· Личное сообщение · #1

вобщем есть вложенные структуры , ну например

MYSTRUCT1 STRUCT
myvar1 WORD ?
MYSTRUCT1 ENDS
PMYSTRUCT1 typedef PTR MYSTRUCT1

MYSTRUCT2 STRUCT
s1 MYSTRUCT1
MYSTRUCT2 ENDS
PMYSTRUCT2 typedef PTR MYSTRUCT2

ну и далее в коде у меня идет
LOCAL www: PMYSTRUCT2
; допустим в www у нас реальный указатель на эту структуру
; нам нужно обратиться к www.s1.myvar1

Обычное перемещение не прокатывает:
mov [www].s1.myvar1
пишет такую ошибку: error A2070: invalid instruction operands
потом я начал мутить с assume:
mov edx, www
assume edx: PMYSTRUCT2
; вот такое обращение прокатывает:
; [edx].s1
; а вот такое нет:
; [edx].s1.myvar1
; даже если мы опять намутим с assume, все-равно не получается добраться до myvar1
; lea ecx, [edx].s1 ;ok
; assume ecx: PMYSTRUCT1 ;ok
; mov [ecx].myvar1, 01h ;error

Вобщем вопрос, как работать с вложенными структурами, если только указатель на нее есть? И как нам добраться до myvar1 ?



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 13 ноября 2006 10:07
· Личное сообщение · #2

MYSTRUCT1 STRUCT
myvar1 WORD ?
MYSTRUCT1 ENDS
PMYSTRUCT1 typedef PTR MYSTRUCT1

MYSTRUCT2 STRUCT
s1 MYSTRUCT1 <>
MYSTRUCT2 ENDS
PMYSTRUCT2 typedef PTR MYSTRUCT2

www MYSTRUCT2 <>

mov bx,www.s1.myvar1


вот так работает



Ранг: 22.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 ноября 2006 17:05
· Личное сообщение · #3

пасиба, кажется разобрался!


 eXeL@B —› Программирование —› Непонятки с Asm
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати