=?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