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 ;загрузка символа в регистр хранения порта