Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при вкл/вык сис. динамика. Privileged instruction. 
:(
    Опции темы
Деран
Дата 10.10.2008, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 17.7.2008

Репутация: нет
Всего: 1



При запуске программы выводится ошибка
Цитата

Unhandled exception at 0x004117ce in Interputed.exe: 0xC0000096: Privileged instruction.


Код программы (ассемблерная вставка в С)
Код

void main()
{
    _asm
    {
    sound_on:
        in      al, 0x61
        or      al, 0x03
        out     0x61, al
    sound_off:
        in      al, 0x61
        and     al, 0xfc
        out     0x61, al
    }
}


Почему не включается динамик?
PM   Вверх
chen
Дата 23.10.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.10.2008

Репутация: нет
Всего: нет



скорее всего ошибка у тебя происходит из за того, что не активизирован 43 порт таймера
Код

; установка режима таймера 
  mov al, 0x0b6 ; канал 2 (спикер), режим 3 (генрация "меандра"), вид операции 3 (чтение-запись
                          ; сначала младшего байта, затем старшего байта)
  out 0x43, al
; установка частоты 2 канала, порт 42, f=1193000 / Y Гц (f=1193000 / 11930 = 100 Гц)
  mov ax, 11930
  out 0x42, al
  mov al, ah ; можно ror ax,8
  out 0x42, al

 
 а далее уже sound_on, кстати в XP (NT/2000) скорее всего работать только в консольных приложениях ( в режиме эмуляции MS-DOS), проще использовать стандартную функцию Windows beep
PM MAIL   Вверх
Mikl_
Дата 23.10.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 6
Всего: 14



Деран, глупости 
Цитата(chen)
скорее всего ошибка у тебя происходит из за того, что не активизирован 43 порт таймера
 английским языком написано "Privileged instruction." обращаться к портам в XP (NT/2000) нельзя даже в консольных приложениях, можно только из драйвера

Это сообщение отредактировал(а) Mikl_ - 24.10.2008, 03:46
PM MAIL   Вверх
chen
Дата 23.10.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.10.2008

Репутация: нет
Всего: нет



Ну, тогда не имеет смысла обращение к 61 порту. Вообще меня спикер коснулся боком, когда пришлось делать программку его писка в win98 - там это работает, а для ХР есть beep
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.