jak udelat _cislo_ MOD 7 ?

Jiří Reček j_recek
Středa Březen 17 11:51:45 CET 2004


No, kdyz ja to pisu vsechno v asembleru.

pozn:
WORD je 16 bitu, tedy v r0 a r1 je 1110000000000000b, coz je sedm krat dve
na trinactou.

Jirka

> dik, to je zajimave kratke bohuzel nejsem x51ckar. Byl by problem to
popsat
> jako algoritmus nebo napsat v nejakem cecku ci pascalu at je videt jak to
> vlastne funguje?  moc dik, chaos
>
>
> pozn:  11100000b je 224, tj. 7**5 a ne 2**13
>
>
>
>
> > Pro jaky procesor ?
> > treba 51 ? (mozna bych zvladl Z80, I8080).
> >
> > bez zaruky:
> >
> >     mov    r0,#0
> >     mov    r1,#11100000b    ; 7 x 2^13
> >
> >     mov    r4,#13            ; pocet opakovani 13x rotace
> >
> > cykl:
> >     clr    c
> >     mov    a,_WORD_    ; odecteni
> >     subb   a,r0
> >     mov    r2,a
> >     mov    a,_WORD_+1
> >     subb   a,r1
> >     mov    r3,a
> >
> >     jc     dalsi
> >     mov    _WORD_,r2    ; vysledek prepsat, pokud
> >     mov    _WORD_,r3    ;  odecteni nepreteklo
> > dalsi:
> >
> >     clr    c
> >     mov    a,r1        ; rotace
> >     rrc    a
> >     mov    r1,a
> >     mov    a,r0
> >     rrc    a
> >     mov    r0,a
> >
> >     djnz   r4,cykl
> >
> > tak, a pustte se do mne.
> >
> > Jirka
> >
> >
> >
>
>








Další informace o konferenci Hw-list