Вопрос по программированию NLM

Обсуждение технических вопросов по продуктам Novell

Вопрос по программированию NLM

Сообщение Олег Дроздов » 26 июл 2007, 10:29

Как определить адрес порта LPT1 ?
Чтение по линейному адресу 0x408 вызывает исключение.

Спасибо.
Олег Дроздов
 
Сообщения: 49
Зарегистрирован: 27 ноя 2002, 10:25

Re: Вопрос по программированию NLM

Сообщение Аркадий Глазырин » 26 июл 2007, 17:32

Олег Дроздов писал(а):Как определить адрес порта LPT1 ?
Чтение по линейному адресу 0x408 вызывает исключение.

Спасибо.


Ячейка 0040:0008

В данном примере инициализируется LPT1:

Код: Выделить всё
;---инициализируем LPT1
          MOV  DX,ES:[8]    ;считываем базовый адрес в DX
          INC  DX           ;прибавляем 2 к базовому адресу
          INC  DX           ;
          MOV  AL,12        ;значение для инициализации
          OUT  DX,AL        ;начинаем инициализацию
          DELAY:    MOV  AX,1000      ;начало пустого цикла
          DEC  AX           ;уменьшаем счетчик
          JNZ  DELAY        ;повторяем 1000 раз
          MOV  AL,8         ;обычное значение для регистра
          OUT  DX,AL        ;конец инициализации


Базовые адреса для LPT1-3 хранятся со смещениями 8, 10 и 12 в области данных BIOS (начинающейся с 0040:0000).
Аватара пользователя
Аркадий Глазырин
 
Сообщения: 2762
Зарегистрирован: 16 авг 2002, 09:09
Откуда: Екатеринбург

Сообщение Олег Дроздов » 27 июл 2007, 14:18

0040:0008 в real mode == 0:408, а куда отображается это в PM я не знаю. Так что будем использовать 378, тем более, что в сетапе на современных матерях можно менять.
Олег Дроздов
 
Сообщения: 49
Зарегистрирован: 27 ноя 2002, 10:25


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0