01h int 21h - av в ассемблерной вставке (C++)

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

  1. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    в ассемблерной вставке в процедуре на C++ получаю AV (обращение по адресу 0xffffffff , нарушение прав доступа при чтении) на вызове прерывания 21h
    вопрос-почему?
    з.ы. прерывание находится в отдельной функции, если его вызывать в вызывающей функции, происходит AV по тому-же адресу
    но если поставить на прерывании bp и продолжить выполнение после остановки на bp - всё в порядке
     
  2. Igor1024

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

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Может из-за защищённого режима (раз в форточках пишите). А с bp в режиме отладки может не все сообщения показываются.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    6opoDuJIo
    А вы, это, уверены, что в винде int 21h вам точно нужно?
    Ответ - потому что не предназначено оно в винде для вызова из юзермода вручную.