нехорошо и неправильно. При получении очередного символа управление получает обработчик прерывания. Он вынимает принятый символ из регистра приемника и укладывает его в буфер приемника. Все. А фоновый процесс (т.е., весь тот код, который выполняется не в обработчиках прерываний) этот буфер разгребает. Посмотрите шаблон, который генерит Codevision, там именно так и сделано ...