Почему ругается masm?

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

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Не пойму, неужели я накосячил в таком куске кода?
    Код (Text):
    1.   assume ebx:ptr DEBUG_EVENT
    2.   mov [ebx].u.ExitProcess.dwExitCode, eax
    3.   assume ebx:nothing
     
  2. Turkish

    Turkish New Member

    Публикаций:
    0
    не мучайся, напиши mov [ebx+12],eax
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Так будет не информативно, да и нужно разобраться кто ошибается я или masm %)
     
  4. out_Lander

    out_Lander New Member

    Публикаций:
    0
    А диззасемблировать не пробовал? Посмотри что он (masm) там реально сделал
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    out_Lander

    cm. subj
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    out_Lander

    > А диззасемблировать не пробовал?



    Что дизассемблировать если masm отказался ассемблировать %)



    У меня подозрение что Hutch со структурами накосячил, потому что например в 98DDK они выглядят несколько по другому.
     
  7. Four-F

    Four-F New Member

    Публикаций:
    0
    А у меня схавал без проблем и ассемблируется в то что нужно.



    WINDOWS.INC for 32 bit MASM (Version 1.26e) Release 23 May 2003



    Microsoft (R) Macro Assembler Version 6.15.8803

    Patched for you by promethee [ECL] in the year 2001 - enjoy
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Four-F

    > А у меня схавал без проблем и ассемблируется в то что нужно.



    А что мне то делать? %)

    У тебя какой масм, Hutch'евский?
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    У меня такой
    Код (Text):
    1. comment ® ¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤
    2.  
    3.       WINDOWS.INC for 32 bit MASM (Version 1.26e) Release 23 May 2003
    4.  
    5.       Project WINDOWS.INC at [url=http://www.masmforum.com
    6. ]www.masmforum.com
    7. [/url]
    8.  
    9.       WINDOWS.INC is copyright software licenced to the user by the
    10.       MASM32 project. It is available completely free of any charges
    11.       for any person to use for purposes including commercial software
    12.       but the file must not be sold or included in any commercial
    13.       programming package.
    14.  
    15.       This also includes publications that are for sale.
    16.  
    17.       WINDOWS.INC Copyright © The MASM32 Project 1998 - 2003
    18.  
    19.       Short history.
    20.       Original file 1998        hutch
    21.       NT and later additions    Iczelion
    22.       Duplicate removal         Jibz
    23.       Bug fixes and additions   User contributed
    24.  
    25.       hutch@movsd.com
    26.  
    27. ¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤=ч=¤= ч=¤ ®
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    ЗЫ: у меня ml.exe от 2002 и 2003 студии, придётся видимо откатываться на стандартный что входит в поставку Hutch'а..
     
  11. Asterix

    Asterix New Member

    Публикаций:
    0
    Four-F

    Сегодня видимо не мой день :-( , с ml.exe из пакета masm32_8.2 Hutch'а тоже ничего не получается, ... ну что за засада..
     
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Вот зараза, оказывается строка
    Код (Text):
    1. mov [ebx].u.ExitProcess.dwExitCode, eax


    конфликтует с моими инклудами, в частности с этими строками
    Код (Text):
    1. externdef _imp__ExitProcess@4:PTR pr1
    2. ExitProcess equ <_imp__ExitProcess@4>




    Мля, пока допёр в чём дело, меня конкретно задрало извилины напрягать >%)
     
  13. Asterix

    Asterix New Member

    Публикаций:
    0
    Проблема описана, кто, какие пути решения предлагает??



    Самое простое - вернуть стандартные инклуды хотя бы для этой функции или переименовать член структуры ExitProcess.



    Может есть более изящное решение, написание какого-нить макроса например?
     
  14. Four-F

    Four-F New Member

    Публикаций:
    0
    Я с подобной фигней при написании Strings.mac столкнулся. Как я понял, у масма, похоже, глобальная таблица символов. Если у тя ExitProcess равен _imp__ExitProcess@4, то как только масм встретит ExitProcess, то тупо подставит _imp__ExitProcess@4.



    Видимо, кроме тех двух вариантов, которые ты уже сам знаешь ничего придумать нельзя. Если сорсы только для тебя, то переименовывай поле ExitProcess, если для пиплов, то придется юзать стандартные инклуды.



    ... есть такой вариант. Переделать в твоих инклудах только ExitProcess так:


    Код (Text):
    1.  
    2. externdef _imp__Xxx@4:PTR pr1
    3. Xxx equ <_imp__Xxx@4>
    4.  
    5. ExitProcess proto :DWORD
    6.  
    7. externdef _imp__Yyy@4:PTR pr1
    8. Yyy equ <_imp__Yyy@4>
    9.  
     
  15. Asterix

    Asterix New Member

    Публикаций:
    0
    Four-F

    Понятно.

    В общем когда fasm научат понимать стандартные С-шные инклуды все перейдем на fasm, masm морально устарел :derisive: