Ldi R19,0b11111111
Ldi R20,0b11110000
out 02,R20 настройка линий E0-3 на ввод, а E4-7 – на вывод;
out 0x17, R19 установить режим вывода для порта B;
out 03,r18 обнулить бит E4 для опроса клавиш 1-го столбца;
loop1: стартовая метка цикла опроса;
in r16,01 считать данные из регистра PINE в R16;
or r16,r20 применить маску для выделения данных в младшей тетраде регистра R16;
cpi R16,0b11111110 проверить нажатие клавиши 1;
brne lbl если клавиша 1 не нажата, то переход на метку lbl для продолжения процедуры проверки;
ldi R27,9 организовать цикл с параметром в R27 из 9 итераций;
lblc: стартовая метка цикла с параметром;
вывод символа табуляции с кодом 0000;
cbi 0x18,1бит b3;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b2;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b1;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1 бит b0;
Sbi 0x18,0
Cbi 0x18,0
dec R27 завершающий код цикла из 9 итераций;
Cpi R27,0
brne lblc:
вывод символа 1 на экран цифрового индикатора;
cbi 0x18,1бит b3;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b2;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b1;
Sbi 0x18,0
Cbi 0x18,0
sbi 0x18,1бит b0;
Sbi 0x18,0
Cbi 0x18,0
rjmp vihod выполнить переход для завершения текущей итерации цикла;
lbl: метка фрагмента проверки нажатия комбинации клавиш 1+2;
cpi R16, 0b11111100 выполнить проверку нажатия комбинации клавиш 1+2;
brne vihod если комбинация клавиш 1+2 не нажата, то переход на метку vihod для выхода из текущей итерации цикла;
ldi R27,9 организовать цикл с параметром в R27 из 9 итераций;
lblc2: стартовая метка цикла с параметром;
вывод символа табуляции с кодом 0000;
cbi 0x18,1бит b3;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b2;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b1;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b0;
Sbi 0x18,0
Cbi 0x18,0
dec R27 завершающий код цикла из 9 итераций;
Cpi R27,0
brne lblc2:
вывод символа 2 на экран цифрового индикатора;
cbi 0x18,1бит b3;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b2;
Sbi 0x18,0
Cbi 0x18,0
sbi 0x18,1бит b1;
Sbi 0x18,0
Cbi 0x18,0
cbi 0x18,1бит b0;
Sbi 0x18,0