останнього
ldi r29, high (dysplay_table +6); символу рядка, що відображає ціну
ld r16, Y-
st X-, R16
ld r16, Y-
st X-, R16
ld r16, Y-
st X-, R16
st Y, key; запис символу
ldi r16, 1
add r17, r16
cpi r17, 4
brlo l17
ldi r17, 0
l17: mov pointer, r17
; відображення на дисплеї
display: ldi r26, low (dysplay_table); завантаження початкової адреси буфера
ldi r27, high (dysplay_table); дисплея в регістр X.
ldi r16, 0x00; r16 використовується для адресації індикатора
l8: ld r17, X +; r17 використовується для тимчасового зберігання коду символу
andi r16, 0x0F
lsl r17; формування байта для відправки на дисплей
lsl r17
lsl r17
lsl r17
add r17, r16
out PORTC, r17
cpi r16, 0x01
breq l9
cpi r16, 0x05
breq l9
cpi r16, 0x0A
breq l9
out PORTD, 0x01; гасіння коми
rjmp l10
l9: out PORTD, 0x00; відображення коми
l10: cpi r16, 0x0F
brne l8
; підпрограма перетворення числа в рядок
IntToStr: ldi r20, 10
ldi r21, 0
ITS4: cp r16, r20
cpc r17, r21
brlo ITS1
mov r18, r16
mov r19, r16
ldi r16, 0
ldi r17, 0
ITS2: cp r18, r20
cpc r19, r21
brlo ITS3
sub r18, r20
sbs r19, r21
inc r16
adc r17, r19
rjmp ITS2
ITS3: ld X +, r16
rjmp ITS4
ITS1: ld X +, r16
reti