В первом посте правый рисунок - схема ( видимо, кто-то раньше железяку сделал, а до программы руки не дошли, и куратор хочет, чтобы было ).
Там на схеме еще регистр 74HC595, и питание внешнее ( хотя COM-порт пару светодиодов и сам потянет; и преобразователей уровня нет, хотя на выходе COM-порта отрицательное напряжение бывает, но, видимо, ничего не сгорит и так ).
По делу - на Ассемблере я бы это не писал, сложно слишком. На Паскале - реально. AVR Studio 4 - отностися к микропроцессорам системы AVR, и здесь вообще не при чем. Ассемблеры бывают разные, каждый для своей системы команд ( своего процессора ). В килобайте - 1024 байта
Попробуйте найти в сети книгу Р.Джордейн "Справочник программиста персональных компьютеров типа IBM PC,XT и AT" или что-то типа ( она достаточно древняя, по-русски, вроде была в электронном виде ). Там все разжевано ( конкретно - глава про COM-порты ), примеры на АССЕМБЛЕРе и БЕЙСИКе, хотя АССЕМБЛЕР я все-таки для первого раза категорически не советую, лучше Паскаль или Дельфи.
Дальше - пишем набор процедур:
- проверка наличия COM-порта, задание его начального состояния, и запоминание базового адреса порта для дальнейшей работы.
- ввод состояния кнопок ( либо всех сразу, либо три процедуры - своя для каждой кнопки ).
- ( самая сложная ) вывод нужного байта в 74HC595.
- задержка времени на заданное количество десятых долей секунды ( вроде есть стандартная ).
Отлаживаем эти процедуры на тестовых примерах - светодиодики уже будут мигать
Когда заработают - спросить у куратора полностью и подробно, сколько светодиодов и в какую сторону он хочет мигать ( будет ругаться - показать, что уже что-то работает - он перестанет ), и доделать.
Вообще, работа с COM-портом - запись нужных байтов в нужные регистры микросхемы 8051, которая внутри компьютера. Ввод состояния кнопок - тоже чтение из регистра. Подводные камни - запись "1" в бит регистра не обязательно вызывает появление именно положительного напряжения на выходе ( иногда - и отрицательного, которое будет обрезано защитными диодами внутри 74HC595 ). Выдача нужного сигнала на TxD - включением/выключением режима "передача цепочки нулей".
За давностью лет мог что-то забыть.
Дерзайте.