Mov ah, 0
Mov es, ax
Mov ax, 40h
Текст программы
Передача данных
При передаче байт данных загружается в регистр хранения, затем он в параллельном коде передается в регистр сдвига, из которого последовательно выводится в канал или модем с установленной при инициализации скоростью.
Чтобы узнать, свободен регистр хранения или нет, следует проверить 5-й бит в регистре статуса линии. Если он равен «1», то в регистр хранения можно загрузить очередной байт. Если -- «0», то следует подождать освобождения регистра хранения.
Передача байта происходит автоматически.
Алгоритм работы программы приема /передачи без прерываний
![]() |
Программа непрерывно следит за состоянием регистра статуса линии и выполняет только функции по приему и передаче байт. Источником информации является клавиатура компьютера. Программа моделирует режим работы телеграфа.
ketry: mov dx, es:[0] ;базовый адрес порта COM в dx
add dx, 5; адрес регистра статуса в dx
in al,dx ;читаем в регистр al
test al, 00011110b ;проверка на ошибку порта
jnz error ;если есть ошибки, то на метку error
test al, 00000001b ;данные получены?
jnz prb ;если байт принят, то на метку prb
test al, 00100000b ; регистр хранения передатчика пуст?
jz ketry ;в начало
mov ah, 1 ;иначе
int 16h ;проверка клавиатуры
jz ketry ;если в буфере клавиатуры нет кода, то в начало
int 15h ;загрузка символа с клавиатуры в al
sub dx, 5 ;вычисляем адрес регистра хранения
out dx, al ;загрузка символа в регистр хранения порта