Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2008, 20:17   #1
Voucik
 
Регистрация: 21.01.2008
Сообщений: 6
По умолчанию _asm

Народ, подскажите пожалуйста, как в visual studio 2005 в C++ (console Application) правильно использовать вставки ассемблерского кода.
Я сделал функцию для очистки экрана
и мой си матерится на эту строку(int 10h), он наверное её понимает
как переменная типа (int), а не прерывание.
Но у меня этот же код прекрасно работает в BorlandC++.
Подскажите плиз, как сделать чтоб он и здесь пахал.

void cls(){

_asm{//пошол код асма
mov ah,06h
mov al,0
mov dl,20
mov bh,7
mov cx,0
mov dx,184fh
int 10h// прерывание в ассемблере 10h
}
}

Последний раз редактировалось Voucik; 23.01.2008 в 20:20.
Voucik вне форума Ответить с цитированием
Старый 23.01.2008, 22:37   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

у меня компилица этот кусок
pu4koff вне форума Ответить с цитированием
Старый 24.01.2008, 00:13   #3
Voucik
 
Регистрация: 21.01.2008
Сообщений: 6
По умолчанию

так он компилется, но не работает. Ты вызови эту функцию и увидеш глюк
Voucik вне форума Ответить с цитированием
Старый 24.01.2008, 03:07   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Если это Win32, то бесполезно вызывать прерывания BIOS, это можно делать только под Win16 - в эмуляции под ntvdm.
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск