Очень глупый вопрос относительно FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем Igor1024, 16 дек 2010.

  1. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Возник вопрос: как объявить функцию в FASM'е.
    Писал так:

    Код (Text):
    1. proc functionname   ;здесь ругань
    2. ...
    3. endp
    Но компилятор ругается.
    Извиняюсь за глупость вопроса, но всё же...
    На оф.сайте в документации смотрел, но не нашёл, видать плохо смотрел.
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Igor1024, телепаты на этом форуме водятся, но если показать минимальный сурс (а не только определение функции) и рассказать, как же именно ругается компилятор, то ответ найдётся значительно быстрее.
     
  3. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Код (Text):
    1. org 100h
    2. mov cl,'q'
    3. call ungetch
    4.  
    5. proc ungetch  ;illegal instruction
    6. mov ah,5
    7. mov ch,0
    8. int 16h
    9. endp
     
  4. tyug

    tyug New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2008
    Сообщения:
    19
    Код (Text):
    1. include win32a.inc
    ?
     
  5. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Igor1024, proc в фасме реализован макросами. Чтобы их использовать, нужно подключить macro/proc32.inc напрямую или в составе одного из win32*.inc. Эти макросы не поддерживают 16-битный код, поэтому поддержку proc придётся писать самому или обойтись без неё. В приведённом выше исходнике proc не особенно и нужен, раз аргументы через стек не передаются:
    Код (Text):
    1. ungetch:
    2.   ...
    3.   retn
    сделает то же самое. Есть неофициальные макросы proc для 16-битного кода, их работоспособность не гарантируется, но в случае проблем можно попробовать задать вопрос в той теме.
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Код (Text):
    1. org 100h
    2. mov cl,'q'
    3. call ungetch
    4.  
    5. ungetch:
    6. mov ah,5
    7. mov ch,0
    8. int 16h
    9. ret
     
  7. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Ок. Спасибо.
     
  8. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    n0name, так не катит. К тому же я так уже пробовал.
     
  9. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    iZzz32, я примеры из Зубкова решил сам переписать (не все конечно!). Вот этот вынес на суд людской из-за краткости.
     
  10. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    n0name, извини, я
    Код (Text):
    1. ret
    увидел, а
    Код (Text):
    1. ungetch:
    нет.