Вопрос по FASM-у

Тема в разделе "WASM.ASSEMBLER", создана пользователем fireman, 25 июл 2011.

  1. fireman

    fireman New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2008
    Сообщения:
    39
    Ув. профи
    Скажите как организовывается наложение типов в FASM-e?
    Допустим у меня массив N- байт, может быть структурой 2 видов, при получении данных мне необходимо выяснить(по сигнатуре конечно), что это за тип. Т.е. как в Tasm-e :)

    И еще один вопрос, кто-нибудь пытался создать MS COFF файл и подключить его к проекту?
    Попытка подключить объектник к Паскалю не увенчался успехом :dntknw:
    Паскаль сказал, что формат файла ему не понятен... :dntknw:
    Может чего я не правильно делаю...
     
  2. rmka

    rmka Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    108
  3. rmka

    rmka Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    108
    cmp [eax], "sign"
    jne @F
    virtual at eax
    strct TYPE1
    end virtual
    @@:
    virtual at eax
    strct TYPE2
    end virtual

    Вроде так
     
  4. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Всё верно говорит, ведь получаемый объектный файл имеет формат COFF, в то время как Borland понимает только OMF.
    Попробуйте эту утилиту.
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Код (Text):
    1. cmp [eax], "sign"
    2.    jne @F
    3.    virtual at eax
    4.      strct  TYPE1
    5.    end virtual
    6. @@:
    7.   virtual at eax
    8.      strct  TYPE2
    9.    end virtual
    Может, вы слишком упростили, потому что по сути получилось так:
    Код (Text):
    1. cmp [eax], "sign"
    2.    jne @F
    3. @@:
    Если типы простые, то можно так:
    Код (Text):
    1.   a db 4 dup 0
    2.   label b dword at a
    Если сложные, то так:
    Код (Text):
    1.   a db 4 dup 0
    2.   virtual at a
    3.   b STRUC1
    4.   end virtual
     
  6. rmka

    rmka Member

    Публикаций:
    0
    Регистрация:
    22 окт 2010
    Сообщения:
    108
    Phantom_84
    Да, я тупанул что-то.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    Код (Text):
    1. your_tupe1  struc
    2. your_ID1_value dd
    3. your_data1 ...
    4. your_tupe1 ends
    5.  
    6. your_tupe2  struc
    7. your_ID2_value dd
    8. your_data2 ...
    9. your_tupe2 ends
    10.  
    11.  
    12. lea ESI,array
    13. mov EAX,(your_tupe1 ptr [ESI]).your_ID1_value
    14. cmp EAX,value
    15. je
    16.  
    17. mov EDX,(your_tupe2 ptr [ESI]).your_data2
    18. jmp exit
    19.  
    20. t1:
    21. mov EDX,(your_tupe1 ptr [ESI]).your_data1
    както так в черновом варианте


    fireman вы знаете, что такое coff формат ??? этот формат предназначен для приложений win32 которые представляют собой аналог tiny модели для 32 битном защищенном режиме - flat, если выкинуть все навороты импорта и экспорта dll и ресурсы и сократить до 16 бит то получится старый добрый .com файл для дос