Как странно себя invoke ведет. Не могу ничего понять

Тема в разделе "WASM.BEGINNERS", создана пользователем Dude03, 17 июл 2006.

  1. Dude03

    Dude03 New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    48
    Код (Text):
    1. Procedure PROTO near C val1:byte
    2. CSEG segment
    3. assume cs:CSEG, ds:CSEG, ss:CSEG, es:CSEG
    4. org 100h
    5.  
    6. Begin:
    7.    
    8.     INVOKE Procedure,Msg
    9.     ret
    10.    
    11. Procedure proc near C val1:byte
    12.     ret
    13. Procedure endp 
    14.  
    15. Msg db 00h
    16.  
    17. CSEG ends
    18.      end Begin
    Вот-с помогите чем могите=
     
  2. BAY

    BAY New Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    23
    ну для начала скопируй файл ML.err в C:\Masm32\Bin\ML.err чтобы увидеть полные описания ошибок.. может потом ясно будет..
     
  3. Dude03

    Dude03 New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    48
    C:\Masm32\Bin\ML.EXE /c /Cp /nologo /I"C:\Masm32\Include" "Proc.asm"
    Assembling: Proc.asm
    Proc.asm(9) : error A2006: undefined symbol : Msg
    Proc.asm(9) : error A2114: INVOKE argument type mismatch : argument : 1
    вот вывод
    а вот если я напишу mov dx, offset Msg то все прокатит без ошибок.
    Так что же это такое?=(
     
  4. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    а invoke, разве кушает параметры размером с байт на входе? нужно по моему addr msg использовать...
     
  5. Dude03

    Dude03 New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    48
    Наврное не кушает , но ошибка даже тогда , когда Msg - word or dword. Только если я Msg поставлю перед вызовом invoke, только тогда все ассемблирование проходит. Но тогда получаеться какая-то ахинея=(
     
  6. repne

    repne New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2006
    Сообщения:
    39
    Адрес:
    Москва
    Хм, кажется у тебя только один проход и Msg объявлена после вызова уже, поэтому не видется. Сделай ключом 2 или 3 прохода.
     
  7. Quantum

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

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Dude03
    Код (Text):
    1. mov al,Msg
    2. INVOKE Procedure,al
    repne
    Нет такого ключа. masm делает 2 и более проходов, но на invoke это не отражается.
     
  8. Dude03

    Dude03 New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    48
    Всем спасибо