Ahojte,
na nasobenie a delenie som doteraz pouzival vlastne procedury ktore pracovali na principe opakovaneho pripocitavania alebo odcitavania cisla v cykle. Avsak teraz ked uz potrebujem pracovat s vacsimi cislami, by som rad porozumel principu na akom pracuju zakladne matematicke operacie vyvinute trochu vacsimi programatormi ako som ja.
Videl som v zdrojakoch ze riesi sa to rotaciami, ale neviem sa z toho vysomarit.
Rozumiem tomu niekto a mohol by to tu trochu objasnit, pripadne potesi aj link na stranku kde je princip vysvetleny.
Nemam zaujem o odkazy na hotove programy, mna zaujima ta teoria okolo toho ako to pracuje. Ako vzorovy prikladam funkcny programik na nasobenie cisla PRODLO obsahom registra W kde vysledok je ulozeny do PRODHI:PRODLO. Chapem co ktora instrukcia urobi, rozumiem tomu ako to tam skace, je mi jasne ze RRF vydeli obsah registru dvoma a STATUS,C sa naplna spodnym bitom toho co sa rotovalo, ale ako celok mi to nie je jasne, ze ako je mozne ze to dojde k spravnemu vysledku. Vlastne delenim cisel dvojkou dokaze vynasobit dane cisla. Moze tu niekto pls popisat trochu teorie ohladom nasobenia, pripadne delenia? Vdaka.
10x8:
org 00h
goto INIT
INIT
movlw D'10'
MOVWF PRODLO
MOVLW D'8'
CLRF PRODHI
CLRF COUNT
BSF COUNT,3
RRF PRODLO,F
LOOP:
SKPNC
ADDWF PRODHI,F
RRF PRODHI,F
RRF PRODLO,F
DECFSZ COUNT
GOTO LOOP
END