=?us-ascii?Q?Re:_Jak_prev=E9st_del=ED_cislo_v_bcd_na_?=
Peter BROSTL
pbr
Středa Březen 17 12:05:51 CET 2004
mozno tro pomoze:
;******************************************************************************
;* Prevodnik stvorpozicneho cisla v BCD kode do binarneho tvaru *
;* *
;* udaje: externa pamet -- 50h *
;* vysledok v RAM na adrese -- dolne 56h a horne 57h *
;******************************************************************************
cseg at 00h
start:
mov dptr,#50h
mov r7,#04h ;pocitadlo na pocet cisel v exter. pam.
mov r0,#50h
mov 57h,#0h
for_1:
movx a,@dptr
clr c ;prepisanie z externej pamati do RAM
subb a,#30h ;pricom sa zistuje aj ascii hodnota
mov @r0,a ;cisel
inc dptr
inc r0
djnz r7,for_1
dec r0
mov r7,#03h ;nastavenie pocitadla na pocet nasobeni 10-ou
mov 56h,@r0
dec r0
for_5:
mov r1,#56h
clr c
mov r2,56h ;ulozenie medzivysledku do registrov r2,r3
mov r3,57h
mov r5,#02h
jmp sk2
for_4:
mov r4,#02h
for_2:
mov a,@r1
rlc a
mov @r1,a ;prve prerolovanie hornych aj dolnych bitov
inc r1
djnz r4,for_2
sk2:
mov r1,#56h
mov a,@r1 ;pricitanie hodnoty medzivysledku lebo
add a,r2 ;10 dvojkovo 1010
mov @r1,a ;prva jednotka
inc r1 ;dolne bity
mov a,@r1
addc a,r3
mov @r1,a ;horne bity
mov r4,#02h
mov r1,#56h
for_3:
mov a,@r1
rlc a
mov @r1,a ;prerolovanie lebo druha nula
inc r1
djnz r4,for_3
djnz r5,for_4 ;opakovanie lebo druha dvojica rovna prvej
mov r1,#56h
mov a,@r1
add a,@r0 ;pricitanie jednotiek
mov @r1,a
jnc sk1
inc r1 ;ak pretecie inkrementacia hornej casti
inc @r1
sk1:
dec r0
djnz r7,for_5 ;testovanie poctu nasobeni desiatkov
dseg at 50h
xseg at 50h
end
*********** REPLY SEPARATOR ***********
On 22.1.2001, at 12:07, vyvojar@atlas.cz wrote:
>Dobrý den všem.
>Prosím všechny o radu, jak na to v asembleru 51. Píšu program, ve kterém potřebuji tento převod kvůli výpočtům naměřených dat.
Daląí informace o konferenci Hw-list