Это и ежу понятно.
КАК нужно работать с этими глобальными структурами?
Инициализация таймера:
out 0x43, 0x1A
mov al, 0x34
out 0x43, al
как ты планируешь определять, какое из полей объединения является активным?
это строковая функция и она воспринимает нулевой байт как конец строки.
кладёт же