C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как правильно работать с портами ввода-вывода?, Не могу записать в порт ввода-вывода
Garry
Отправлено: 12.07.2003, 21:21


Не зарегистрирован







Как правильно работать с портами ввода-вывода?

Необходимо управлять устройством через порт ввода-вывода?
Какие существуют стандартные функции или компоненты для работы с портами ввода вывода?
Я попытался реализовать свою задачу путем написания кусочка программы на ассемблере:

...
asm
{
mov dx,pnum
mov ax,pdat
out dx,ax
and pdat,0xfe
mov ax,pdat
out dx,ax
and pdat,0xfd
mov ax,pdat
out dx,ax
}
...

Все прекрасно работает если программу я запускаю под Windows 98, но под Windows XP при попытке выполнить инструкцию out dx,ax мне выдается сообщение:

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EPrivilege with message 'Privileged instruction'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Из сообщения понятно, что процессору запрещено выполнять данную инструкцию. Я так понимаю, что это связано с уровнем защищенности системы XP. Как правильно разрешить эту проблему и выполнить запись в порт ввода вывода и произвести чтение информации из порта?

За раннее благодарен.
С уважением
Семеновский Игорь.
sprinter
Отправлено: 13.07.2003, 16:56


Ученик-кочегар

Группа: Участник
Сообщений: 14



Из ранешних FAQ

Посмотри компонент ZComm (free for personal use)
http://www.rogerssisco.com/z.
FoxVID
Отправлено: 02.01.2004, 16:41


Ученик-кочегар

Группа: Участник
Сообщений: 29



CODE
Все прекрасно работает если программу я запускаю под Windows 98

Честно говоря, удивлен, что в Win98 это еще работает.
Дело в том, что здесь не получится напрямую писать и читать регистры портов. Для этого необходимо использовать WinAPI. Смотри
Работа с коммуникационными портами. Лучше описано только в MSDN

Вернуться в Вопросы программирования в C++Builder