Структуры на асме
От: Аноним  
Дата: 21.11.06 13:10
Оценка:

.data
mz   db   64 dup (?)
   ; ...

.code
   ; ...
add     eax, mz.dword ptr 3Ch


MASM выдает ошибку error A2166: structure field expected.
Как переписать выражение ?
Re: Структуры на асме
От: SergH Россия  
Дата: 21.11.06 13:24
Оценка:
Здравствуйте, Аноним, Вы писали:


А>

А>.data
А>mz   db   64 dup (?)
А>   ; ...

А>.code
А>   ; ...
А>add     eax, mz.dword ptr 3Ch 
А>


А>MASM выдает ошибку error A2166: structure field expected.

А>Как переписать выражение ?

А что подразумевалось? Скопировать 4 байта из массива, начиная со смещения 3CHh? Наверное так:

add eax, offset mz + 3Ch


dword ptr в данном случае не обязательно — количество байт уже задано регистром-приёмником.
Делай что должно, и будь что будет
Re[2]: Структуры на асме
От: SergH Россия  
Дата: 21.11.06 13:25
Оценка:
Здравствуйте, SergH, Вы писали:

SH>А что подразумевалось? Скопировать 4 байта из массива, начиная со смещения 3CHh? Наверное так:


Не скопировать, а прибавить, конечно.
Делай что должно, и будь что будет
Re[2]: Структуры на асме
От: Аноним  
Дата: 21.11.06 13:30
Оценка: -1
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, Аноним, Вы писали:



А>>

А>>.data
А>>mz   db   64 dup (?)
А>>   ; ...

А>>.code
А>>   ; ...
А>>add     eax, mz.dword ptr 3Ch 
А>>


А>>MASM выдает ошибку error A2166: structure field expected.

А>>Как переписать выражение ?

SH>А что подразумевалось? Скопировать 4 байта из массива, начиная со смещения 3CHh?


Нет конечно. dword ptr тебе о чем-то говорит?
Впрочем, ладно. Уже разобрался.
Re[3]: Структуры на асме
От: SergH Россия  
Дата: 21.11.06 13:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нет конечно. dword ptr тебе о чем-то говорит?


Обьясни.
Делай что должно, и будь что будет
Re[4]: Структуры на асме
От: Аноним  
Дата: 21.11.06 13:46
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, Аноним, Вы писали:


А>>Нет конечно. dword ptr тебе о чем-то говорит?


SH>Обьясни.


Прибавить 4 байта, находящиеся по адресу, который лежит по смещением 3Ch от начала массива.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.