Неточное извлечение данных из заданного массива

Тема в разделе "WASM.BEGINNERS", создана пользователем lust, 30 мар 2008.

  1. lust

    lust New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2007
    Сообщения:
    72
    У меня есть несколько массивов, которые заданы так:
    Код (Text):
    1. RespPrefix  db  "&rsp=",0
    2. RespPrefixSize  db   5
    3.  
    4.  
    5. HTMLSpace   db  " ",0
    6. HTMLSpaceSize = ($-HTMLSpace)
    7.  
    8.  
    9. HTMLBody    db  "HTTP/1.1",13
    10.         db  "Host: ",13
    11.         db  "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1;"
    12.         db  " ru; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12",13
    13.         db  "Accept: text/xml,application/xml,application/xhtml+xml,"
    14.         db  "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",13
    15.         db  "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3",13
    16.         db  "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7",13
    17.         db  "Keep-Alive: 1000",13
    18.         db  "Connection: keep-alive",13
    19.         db  "If-Modified-Since: Mon, 23 Oct 2006 11:20:40 GMT",13
    20.         db  "Cache-Control: max-age=0",13,10,13,10,  0
    21. HTMLBodySize = ($-HTMLBody)
    И когда я использую функцию
    Код (Text):
    1. invoke CreateFile, addr TESTfile, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
    2.     mov filehandle,eax
    3.     invoke WriteFile, filehandle, addr RespPrefix , RespPrefixSize, addr bytecount,0
    4.     invoke CloseHandle,filehandle
    то в файле получаю
    Код (Text):
    1. 1.1
    2. H
    Что явялется 5 байтами из HTMLBody массива.
    ПОЧЕМУ так происходит я не могу понять. у кого-нить есть идеи?
    Спасибо.
     
  2. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    Судя по твоему WriteFile - ты должен получить в файле RespPrefix
    видать ты какой-то код не тот выложил
     
  3. lust

    lust New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2007
    Сообщения:
    72
    Код написан верно, в этом-то вся жесть и состоит.
     
  4. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    lust
    Во-первых, не стоит использовать RespPrefixSize db 5 вместо RespPrefixSize dd 5
    Во-вторых, ИМХО, масм - кривой
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    lust
    Незачем плодить темы. У тебя уже как минимум 4 топика по одному вопросу.
     
  6. lust

    lust New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2007
    Сообщения:
    72
    да, тут еще один момент.
    Фарш наступает после выполнения кода
    Код (Text):
    1. mov eax, HTMLBodySize
    2.     mov edx, HTMLheaderSize
    3.     add eax, edx
    4.     add eax, HTMLSpaceSize
    5.     mov RequestHeaderSize,eax
    6.    
    7.     mov eax,offset HTMLheader
    8.     mov pHTMLheader,eax
    9.     mov eax,offset HTMLSpace
    10.     mov pHTMLSpace,eax 
    11.     mov eax,offset HTMLBody
    12.     mov pHTMLBody,eax
    13.    
    14.     invoke lstrcat ,pHTMLheader,pHTMLSpace
    15.     invoke lstrcat ,eax,pHTMLBody
    16.     mov pRequestHeader,eax
    То есть переменные в коде не меняются, но всё равно всё к чёрту слетает. почему не понятно =(
     
  7. lust

    lust New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2007
    Сообщения:
    72
    разбрался
    Вся жесть, что lstrcat тупо сшивает массивы, и указаетли все херятся. то есть массивы накладываются тогда друг на друга.