![]() |
|
![]() ![]() ![]() |
|
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Программирую на С / С++. Нужда заставила обратиться к ASM.
Не получается вызвать прерывание под Windows XP в ассемблерной вставке. Если запустить программу под borland C 3.1, то все работает. Под Builder 6 просто черный экран. А в Visual c++ мелкософтовском выдается ошибка времени выполнения. Ну Borland C - он под DOS работает, тут все понятно. В как сделать, чтобы все работало и в Windows? Заранее спасибо за ответ.
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: нет Всего: 29 |
Писать программу для DOS (COM, MZ). Borland C 3.1 это и делает. Windows XP эмулируем DOS'овские прерывания для DOS'овских программ. В программе для Windows (PE - Builder 6, Visual С++) - никак. В Windows XP доступ к прерываниям есть только из режима ядра.
|
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 3 Всего: 18 |
Что именно ты хочешь сделать на ASM в windows? В вышеприведенном примере ты вызываешь функцию DOS - "READ CHARACTER FROM STANDARD INPUT, WITH ECHO", наверное это просто "пробный пример"? -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Chingachguk
Для своего курсового на С++ у нас в БГУИР (минск) 2 среды: Borland C++ 3.1 и Visual C++ 6/ Второй вариант посимпатичнее, но в этой IDE нет функций а-ля gotoxy wherex для управления курсором, что является критичным для реализации (менюшки всякие) Хотел просто эти функции через 10h прерывание реализовать. Не судьба... -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
setty |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 8.6.2006 Где: Украина Репутация: нет Всего: нет |
менюшки под дос я когдато писал на тасме правда (даже не псевдо а самая что не наесть графика) если надо могу выложить исходник
|
|||
|
||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 3 Всего: 18 |
Неужели в консольной WIN32 программе нельзя двигать курсор? Или ты про оконное приложение - там нужно специфичные для win функции использовать, но также все есть. Вот нашел в примерах из пакета MASM32 (есть на сайте WASM.ru):
Имхо, и на СИ то же самое можно написать... Это Ж просто WIN API. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
1. setty!
Спасибо за предложение и за готовность помочь. Был бы очень рад увидеть твои исходники 2. Chingachguk!!! Огромнейшее спасибо за ИНФОРМАЦИЮ. (к сожалению пока 100 постов нет для повышения твоей репутации). 3. Кстати, решил свою программу откомпилировать в Borland C++ Builder 6. Он же тоже под Win, но функции досовского borland 3.1 gotoxy() и т.д. пристутствуют. Посмотрел в CPU, как они выполняются в этих двух средах. Оказывается, что в Builder просто (!!!!!!) вызывается WIN API функция SetConsoleCursorPosition(). -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |