Для начала, вы под какой ОС всё это дело запускаете? Если это не голый DOS, а хотя бы уже Windows 95, то нормально это работать не будет, т.к. приложения DOS запускаются под виртуальной машиной быстродействие которой в разы ниже обычного компа.
Во-вторых, я не вижу в вашей программе команд запрета прерываний. Обычно щелчки во время воспроизведения музыки означают, что система вызывает какие-то другие (свои) прерывания и мешает вашей программе воспроизводить звук.
Вообще, сколько я в молодости писал под DOS, очень трудно что либо получить нормальное в плане звука из системного динамика, не запрещая прерывания. Возможно, у вас банально не хватает быстродействия. Попробуйте запустить программу на другом компьютере?
А щелчки ещё могут означать, что у вас какой-то таймер переполняется и его значение становится 0, что для двухбайтового счётчика эквивалентно 65536 и он один раз работает с низкой частотой, что и даёт щелчок.