процедура в fasm падает =/

Тема в разделе "WASM.BEGINNERS", создана пользователем e4key, 29 сен 2009.

  1. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    уже всю голову сломал =/ код показать не могу)) ну думаю, что все понятно будет из описания и подскажут, что это я в коде неправильно делаю, или нет. проблема в следующем: первоначально я написал процедуру с использованием локальных переменных и все работало отлично. затем я все переменные выделил в отдельный файл и подключил его. вызываю процедуру через stdcall ProcName. код уже 100 раз проверил, но после выполнения всего кода (проверил, поставив msgbox перед ret) падает. но, если задать любую локальную переменную (и даже не использовать ее) или поставить параметр (хотя его даже не передавать), то процедура завершиться нормально и все ок. не понимаю( спасибо.
     
  2. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    это в коде ошибка или я чего не знаю?
     
  3. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    наверника что-то со стеком,ты проверял адресс вовзрата преред выходом из функции?
     
  4. botmen

    botmen Member

    Публикаций:
    0
    Регистрация:
    2 сен 2007
    Сообщения:
    43
    где подключал файл :)
     
  5. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    у меня есть главный файл. в нем я подключаю файл с данными и файл с процедурами :) из него и вызываю процедуру из другого файла. все функции выполняются как надо - проверял по кодам ошибок.

    1nsidE, как?)
     
  6. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    я понимаю, что в esp, но что мне это даст?)
     
  7. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    и каким боком тут переменные или параметры функции?
     
  8. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    я тебе открою один большой секрет,локальные переменные и аргументы находятся на стекео_О,и если ты что-то там неправильно нашамнствуеш,то можешь затереть адрес возврата( или тебе о нем тоже надо рассказать? ),и функция будет возвращаться в космос.понятно?

    и вообще,ты можешь нормально обьяаснить в каком файле что у тебя?или хоть кусок кода дай.
     
  9. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    в файле data.inc у меня все переменные и константы. в файле procs.asm у меня процедуры. главный файл - main.asm, в нем я подключаю файл data.inc и procs.asm, а затем вызываю процедуры из procs.asm.

    а можно пример, что может затереть адрес возврата? :) вроде бы весь код правильный.
     
  10. botmen

    botmen Member

    Публикаций:
    0
    Регистрация:
    2 сен 2007
    Сообщения:
    43
    как ты вынес локальные переменные?
     
  11. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    вынес их в отдельный файл и подключаю, как я описал это выше. собственно с локальными переменными был подключен win32ax и использовал addr для получения адреса. сейчас подключен win32a и поскольку переменные не локальные, то просто пишу имя переменной для получения адреса.
     
  12. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    отмечу, что весь код процедуры выполняется корректно, но как дело доходит до выхода из процедуры, то она падает
     
  13. botmen

    botmen Member

    Публикаций:
    0
    Регистрация:
    2 сен 2007
    Сообщения:
    43
    телепатируйте...
    так ты используешь локальные или глобальные
    выкладывай свою проц-ру - не биси
     
  14. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    я разве говорил, что я использую локальные?
     
  15. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    e4key
    убило )))))
     
  16. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    e4key
    вобщем,тут люди по звездам баги не ищут,или код в студию,или флаг вам в руки
     
  17. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    дебаггером
     
  18. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    1nsidE, что вас убило? я по моему в самом первом посте четко написал, что раньше было с локальными, а сейчас вынес в отдельный файл подключаю в начале файла.
     
  19. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    мая твая не понимай.
    В общем - используй отладчик.
     
  20. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    e4key, довайте исходнеке. без них, как было выше сказанно, довольно неудоно искать ошибке. по крайней мере пока часы не перевели..