|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.09.2011, 19:11 | #1 |
Регистрация: 28.06.2011
Сообщений: 3
|
Работа с Com портом
Помогите, пожалуйста, составить программу. Задание такое: "Написать 16–ти разрядную ассемблерную программу, которая выводит на экран консоли сообщение о том, установлен или нет порт СОМ2 и в случае установки выводит также его базовый адрес в 16-тиричном виде."
Вот, что нашел Определение статуса коммуникационного порта. Регистр статуса линии микросхемы UART 8250 определяет протокол связи. Этот регистр имеет адрес порта на 5 больше, чем базовый адрес данного канала. Обычно он постоянно просматривается в процессе коммуникационного обмена. При передаче данных регистр сообщает, что предыдущий символ уже послан, позволяя программе записать новый символ поверх его. При приеме данных регистр информирует программу о поступлении следующего символа, с тем чтобы программа могла прочитать его прежде чем он будет уничтожен следующим прибывшим. Значение битов этого регистра следующее: бит 0 1 = байт данных получен 1 1 = полученные данные были перезаписаны (предыдущий символ не был вовремя считан) 2 1 = ошибка четности (вероятно, из-за шума в линии) 3 1 = ошибка окружения (передача не синхронизована) 4 1 = обнаружен перерыв (получена длинная строка единиц, индицирующая, что другая станция запрашивает конец передачи) 5 1 = регистр хранения передатчика пуст (в этот регистр должны помещаться передаваемые данные) 6 1 = регистр сдвига передатчика пуст (этот регистр по- лучает данные из регистра хранения и преобразует их в последовательный вид) 7 1 = таймаут (устройство не связано с машиной) Средний уровень. Функция 3 прерывания 14H BIOS возвращает в AH регистр статуса линии. При входе DX должен содержать номер коммуникационного порта, к которому осуществляется доступ, где COM1 = 0, а COM2 = 1. Kак и предыдущий пример, этот проверяет наличие перерыва: Код:
Из области данных BIOS считывается базовый адрес коммуникационного канала, к нему добавляется 5, а затем из полученного адреса порта считывается байт статуса. Код:
Код:
Последний раз редактировалось ilsenbox@mail.ru; 13.09.2011 в 20:45. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с com-портом | larry | Visual C++ | 6 | 12.08.2010 16:21 |
работа с портом | Assemblerru | Win Api | 16 | 10.06.2010 20:00 |
Работа с com портом | Валера777 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 05.12.2009 00:06 |
работа с COM портом | ShAzat | Общие вопросы Delphi | 8 | 28.05.2008 20:08 |