Treść zadania:
Napisać program w assemblerze procesora AVR (model 90S8515), który zlicza łączną liczbę "jedynek" na 8-bitowych portach wejściowych A i B.
Wynik wyprowadzony jest w kodzie BCD na port wyjściowy D.
Kodowanie BCD (binary coded decimal) powszechnie stosowane jest w sterowaniu wyświetlaczami 7-segmentowymi. Każda cyfra dziesiętna wyniku
kodowana jest niezależnie na 4 bitach, np:
04 dec = 0000 0100 bcd (bo 0 dec = 0000 bin, a 4 dec = 0100 bin)
13 dec = 0001 0011 bcd (bo 1 dec = 0001 bin, a 3 dec = 0011 bin)
umie ktos to zrobic ? bede wdzieczny za pomoc
to jest dobrze ??
Napisać program w assemblerze procesora AVR (model 90S8515), który zlicza łączną liczbę "jedynek" na 8-bitowych portach wejściowych A i B.
Wynik wyprowadzony jest w kodzie BCD na port wyjściowy D.
Kodowanie BCD (binary coded decimal) powszechnie stosowane jest w sterowaniu wyświetlaczami 7-segmentowymi. Każda cyfra dziesiętna wyniku
kodowana jest niezależnie na 4 bitach, np:
04 dec = 0000 0100 bcd (bo 0 dec = 0000 bin, a 4 dec = 0100 bin)
13 dec = 0001 0011 bcd (bo 1 dec = 0001 bin, a 3 dec = 0011 bin)
umie ktos to zrobic ? bede wdzieczny za pomoc
.include "8515def.inc"
rjmp start
start:
clr r10 //czysci rejestr r20
sbic portA,0
inc r20
sbic portA,1
inc r20
sbic portA,2
inc r20
sbic portA,3
inc r20
sbic portA,4
inc r20
sbic portA,5
inc r20
sbic portA,6
inc r20
sbic portA,7
inc r20
sbic portB,0
inc r20
sbic portB,1
inc r20
sbic portB,2
inc r20
sbic portB,3
inc r20
sbic portB,4
inc r20
sbic portB,5
inc r20
sbic portB,6
inc r20
sbic portB,7
inc r20
clr r10
petla:
tst r20
breq koniec
lsl r10
inc r10
dec r20
rjmp petla
koniec:
out portD, r10
to jest dobrze ??