На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Заполнение структуры
    Подскажите пожалуйста, как занести в структуру данные.
    Есть две структуры

    ExpandedWrap disabled
      SQLCOL struct
          szName  db 128 (dup)        ; Имя столбца
          szType  dd ?                ; Тип столбца
      SQLCOL ends


    и

    ExpandedWrap disabled
      MYSQL_FIELD struct
          Name_   dd ?                ; Имя столбца
          Type    dd ?                ; Тип столбца
          .
          .
      MYSQL_FIELD ends


    Читаю данные из структуры MYSQL_FIELD и пытаюсь их сохранить в сруктуре SQLCOL.
    Тип данных получается сохранить, а вот имя нет.
    компилятор ругается error A2001: immediate operand not allowed
    Сохранять пытаюсь так:
    ExpandedWrap disabled
      mov [edi].SQLCOL.szName,offset NameBuff
    Сообщение отредактировано: Qraizer -
      Ну, как минимум SQLCOL.szName имеет тип BYTE, а ты пытаешь туда запихнуть OFFSET, что как минимум 16-бит, если мы о DOS. Чего собственно хочется-то? Я что такое NameBuff?
        Name_, скорее всего, - указатель на имя. Надо по нему сходить и скопировать содержимое в szName.
          Потому что фигню понаписал, потому и ругается.

          Для начала
          ExpandedWrap disabled
            SQLCOL struct
                szName  db 128 dup(?)       ; Имя столбца
                szType  dd ?                ; Тип столбца
            SQLCOL ends

          а не то что ты написал.

          Эта команда
          ExpandedWrap disabled
            mov [edi].SQLCOL.szName,offset NameBuff

          строку не копирует.
          А у тебя szName судя по всему ASCIIZ строка.
            Занести в структуру строку он, видимо, хочет. Но так не получится, там не указатель, а сама строка должна быть.
            ExpandedWrap disabled
              cld
              lea esi,NameBuff
              ; в edi, как я понял, уже адрес структуры SQLCOL
              mov ecx,NameBuffLen  ; длина копируемой строки вместе с завершающим 0
              rep movsb

            p.s. ESI, EDI только нужно не забыть сохранять/восстановить.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0242 ]   [ 16 queries used ]   [ Generated: 28.03.24, 20:11 GMT ]