![]() |
|
Модераторы: bsa |
![]()
|
|
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
zim22, И часто ты видел чтоб WIN32 приложения использовали прерывания?
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Ну это дос. Это
В виндоуз это API функции а не прерывания. А аппаратные - запрещены в режиме пользователя. |
||||
|
|||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
функция о которой Вы говорите, не прерывание, а обработчик прерывания. |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Подробней плиз... -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
по поводу этого, может вы спутали с __fastcall? Этот calling convention применяется как рекомендация к передаче первых двух параметров функции через регистры ECX и EDX. В ДОС существует таблица векторов прерываний, на самом деле это просто область памяти в которой записан обработчик каждого прерывания ДОС. ДОС совершенно незащищенная ОС и потому она позволяет изменять таблицу. В ней можно переназначить вектор на свой обработчик. Так в ДОС перехватывают нажатие клавишы к примеру. Разумеется испортить таблицу - плевое дело. Один неверный шаг и вся ОС умрет. Вот такие дела. Кстати win98 далеко не ушел от ДОС, т.е. это была всего лишь графическая оболочка над ДОС. Это сообщение отредактировал(а) azesmcar - 13.6.2009, 17:24 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
я не силён в ассемблере, поэтому признаЮ свою неправоту, если она была. просто помню ещё с института преподаватель твердил: прерывание - это функция, в которую передаются параметры из регистров. Это сообщение отредактировал(а) zim22 - 13.6.2009, 17:37 |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Он ошибался Событие это функция. Функция может быть вызвана в результате события, но событие это не функция. Приравнивать их не стоит. Вот тут неплохо описано http://dklab.ru/doc/int.html#cont0 А может он просто пытался обяснить максимально ясно, типа
вот только по моему опыту, хорошему такие книги не учат. |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
А win95, milenium ? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: 1 Всего: 8 |
без вызова 21 прерывания, код не работает _asm{} вообе не работает :( раз-уж так пошло: может кто-нибудь подсказать другой способ выводить один писель на экран в MinGW? Из этого и получилась заворуха :( |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
прерывания использовать можно, если программа пишется для ДОС, т.е. работает под эмуляцией. вообще это вопрос по ассемблеру, для вывода пикселей надо сперва установить графический режим монитора. Есть же турбо ассемблер который запускается под виндоуз. Вообще стоило бы почитать http://forum.vingrad.ru/index.php?showtopic=34 Это сообщение отредактировал(а) azesmcar - 14.6.2009, 10:51 |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Ага, а с вызовом 21го прерывания программа будет работать, но недолго - до появления таблички 'Программа выполнила некоректную операцию и будет закрыта' (или как то так).
Про графику в консоли можете смело забыть - ну не поддерживает Винда графику в консоли для Win32 приложений, а MingW не умеет делать ДОС приложения |
||||||
|
|||||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Долго я пытался это объяснить -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| zedx |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Подскажите, а как ЦЕЛИКОМ функцию на ассемблере вставить?
В делфях это было так:
в Си делаю:
Из-за того, что компилятор считает процедуру сишной, при входе в неё он самостоятельно сохраняет регистры в стек, а это нарушает работоспособность основного кода. Как его заставить делать только то, что указано в коде, т.е. как объявить чисто ассемблеровскую процедуру? |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |