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