co wy konie jesteście czy co bo kombinujecie jak niewiem
założenia :
brak instrukcji dzielenia ( bo jesli by było to dzielimy przez 10 i w wyniku mamy 1 cyfrę a w reszcie drugą cyfre , nic prostrzego

)
Nie korzystamy z pamięci bo np 1200 nie ma takiej instrukcji ;/
.........ldi r18,liczba bin do zaminy
.........clr r16
next1:
.........subi r18,100.........; odejmijmy 100
.........brcs ujemna100
.........inc r16..............; setki +1
.........sjmp next1
ujemna100:
..........subi r18,156............; -> +100 = -(-100) -> 156

poprostu niema instrukcji addi r17,100 jeżeli nie można dodać do odejmijmy ujemną
.........clr r17
next2:
.........subi r18,10.........; odejmijmy 10
.........brcs ujemna10
.........inc r17..............; dziesiatki +1
.........sjmp next2
ujemna10:
..........subi r18,246............; -> +10 = -(-10) -> 246
jako że avr jest szybki to wykona się szybko to zrobił więcej niż chciałeś bo masz bin3bcd i tak w r16 masz setki w r17 dzesiątki a r18 jednostki
jakieś pytania ?
( napiszcie co o tym sądziecie nie jestem zwolennikiem pisania tak napiechotę ale nieraz najprostrze roziązania są najskuteczniejsze )
p.S kropki sa tylko po to bo skrypy na stronie je usuwa i było by nieczytelnie
niech ktoś sprawdzi ile zajmuje procedurka z tablica a ile ta