Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.200.77.59] |
|
Сообщ.
#1
,
|
|
|
Подскажите пожалуйста, как занести в структуру данные.
Есть две структуры SQLCOL struct szName db 128 (dup) ; Имя столбца szType dd ? ; Тип столбца SQLCOL ends и MYSQL_FIELD struct Name_ dd ? ; Имя столбца Type dd ? ; Тип столбца . . MYSQL_FIELD ends Читаю данные из структуры MYSQL_FIELD и пытаюсь их сохранить в сруктуре SQLCOL. Тип данных получается сохранить, а вот имя нет. компилятор ругается error A2001: immediate operand not allowed Сохранять пытаюсь так: mov [edi].SQLCOL.szName,offset NameBuff |
Сообщ.
#2
,
|
|
|
Ну, как минимум SQLCOL.szName имеет тип BYTE, а ты пытаешь туда запихнуть OFFSET, что как минимум 16-бит, если мы о DOS. Чего собственно хочется-то? Я что такое NameBuff?
|
Сообщ.
#3
,
|
|
|
Name_, скорее всего, - указатель на имя. Надо по нему сходить и скопировать содержимое в szName.
|
Сообщ.
#4
,
|
|
|
Потому что фигню понаписал, потому и ругается.
Для начала SQLCOL struct szName db 128 dup(?) ; Имя столбца szType dd ? ; Тип столбца SQLCOL ends а не то что ты написал. Эта команда mov [edi].SQLCOL.szName,offset NameBuff строку не копирует. А у тебя szName судя по всему ASCIIZ строка. |
Сообщ.
#5
,
|
|
|
Занести в структуру строку он, видимо, хочет. Но так не получится, там не указатель, а сама строка должна быть.
cld lea esi,NameBuff ; в edi, как я понял, уже адрес структуры SQLCOL mov ecx,NameBuffLen ; длина копируемой строки вместе с завершающим 0 rep movsb p.s. ESI, EDI только нужно не забыть сохранять/восстановить. |