аналог dup для fasm

Тема в разделе "WASM.ASSEMBLER", создана пользователем james_bond, 28 ноя 2004.

  1. james_bond

    james_bond New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    22
    Адрес:
    the best from the west
    встетился с такой траблой...

    в тасме есть

    inarea db 20 dup(' ')



    а как переделать под fasm?
     
  2. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    inarea: times 20 db ' '
     
  3. james_bond

    james_bond New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    22
    Адрес:
    the best from the west
    спасибо огромное!
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    james_bond

    А документацию по фасму почитать спецслужбы не позволяют?
     
  5. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    ещё можно использовать rb, rw, rd, что намного прлезнее, т.к. если написать ,например, rb 1000h в конце секции данных, то размер файла не увеличивается.

    times это макрокоманда повторения.
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    кажеться rb, к сожалению, не позволяет инициализировать например пробелами
     
  7. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    bogrus, да в винде ,обычно, заполняется нулями, но это не гарантираванно.
     
  8. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    rb 1000h можно написать и до всех секций, в файле их не будет, но они попадут в заполненную нулями секцию неинициализированных данных - это будет аналогом db 20 dup(?) в секции .data?

    Но rb не подойдет чтобы сделать аналог для инициализированных данных - db 20 dup(' ')
     
  9. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    По идее RB увеличивает в заголовке размер памяти, выделяемой под секцию.
     
  10. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск




    Просто для общего развития, поясните, где можно использовать 1000h пробелов? Я обычно выделяю память для хранения каких-то данных и мне пофик чем память изначально инициализирована. Может я чего-то не знаю?
     
  11. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Да где угодно, для вывода каких-то данных, ведь может быть лучше прописать пробелы в форме отчета сразу, чем потом программно их туда добавлять, а мне, например, когда-то понадобилось больше 8000h nop'ов :)
     
  12. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    >больше 8000h nop'ов



    Это где такое? могло понадобиться?
     
  13. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Например в этой программе :)
    Код (Text):
    1. ;===========================================================
    2. format      PE GUI 4.0 at 793A0000h ; imagebase kernel32.dll
    3. ;===========================================================
    4. times       8000h   nop             ; can be various too
    5. ;===========================================================
    6. start:      mov     eax,[fs:18h]
    7.             mov     eax,[eax+30h]
    8.             mov     dword [eax+2Ch],@F-128h
    9.             push    24h
    10.             push    0
    11.             mov     eax,1139h
    12.             lea     edx,[esp]
    13.             int     2Eh
    14. @@:         dd      $-start+start+4
    15.             mov     ebx,5
    16. @@:         mov     ecx,0FFFFFFh
    17. m1:         loop    m1
    18.             push    24h
    19.             push    0
    20.             mov     eax,1139h
    21.             lea     edx,[esp]
    22.             int     2Eh
    23.             dec     ebx
    24.             jnz     @B
    25. ;===========================================================
     
  14. james_bond

    james_bond New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    22
    Адрес:
    the best from the west
    а смысл?
     
  15. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    bogrus

    Для определения в коде данных больших размеров лучше использовать директиву file.
     
  16. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    file загружает данные из файла,

    а какой смысл это делать, если данные одинаковые ?