Чтение из файла

Тема в разделе "WASM.BEGINNERS", создана пользователем fuzzylogic, 6 мар 2007.

  1. fuzzylogic

    fuzzylogic New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2007
    Сообщения:
    3
    Следующий код выполняется бесконечно.
    Код (Text):
    1.  
    2. _txt:
    3.        invoke     CreateFile,szTemp+4,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
    4.        mov        [hTempFile],eax
    5.   __ReadNext:
    6.        invoke     ReadFile,[hTempFile],szSendBuff,256,bytes_count,NULL
    7.        mov        eax,bytes_count
    8.        or         eax,eax
    9.        jz         __EndRead ; Вот тут походу не происходит выхода их цикла
    10. ;       je         __EndRead
    11.        invoke     MessageBox,0,szSendBuff,szCmd,MB_ICONQUESTION+MB_OK ; строго говоря не имеет значения что ТУТ делается.
    12.        jmp        __ReadNext
    13.   __EndRead:
    14.        invoke     CloseHandle,[hTempFile]
    15.        jmp        _retn
    Мне кажется что проблема в bytes_count. Не понятно каке его значение. В MSDN написано что это как раз число прочитанных байт.

    если заменить условие на
    Код (Text):
    1. cmp [bytes_count], 0
    2. je __EndRead
    то наоборот сразу выходит
    Компилятор FASM.
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Код (Text):
    1.  mov        eax,bytes_count
    поменяй на
    Код (Text):
    1.  mov        eax,[bytes_count]
     
  3. fuzzylogic

    fuzzylogic New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2007
    Сообщения:
    3
    а че он ругается "operand size do not match"?
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Код (Text):
    1. mov        eax,dword[bytes_count]
     
  5. fuzzylogic

    fuzzylogic New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2007
    Сообщения:
    3
    спасибо.