next up previous
Naprej: Zakasnilna zanka ene Gor: Programiranje mikroprocesorja 6800 Nazaj: Programiranje mikroprocesorja 6800

Mno"zenje dveh osem--bitnih celih "stevil

Mikroprocesor 6800 nima vgrajenih in"strukcij za mno"zeynje celih "stevil, zato se od programerja zahteva, da mno"zenje "stevil izvede programsko. Algoritmov za mno"zenje je seveda ve"c. Najenostavnej"si algoritem je seveda ta, da v zanki n--krat se"stejemo mno"zenec in tako dobimo zmno"zek. Tak pristo pa je evidentno "casovno odvisen, zaj je treba za ve"cje mno"zitelje ve"ckrat se"steti mno"zenec.

Drugi algoritem, ki ni toliko "casovno odvisen je analogija z deseti"skim mno"zenjem, kjer pomikanje registrov mikroprocesorja v levo pomeni mno"zenje registra za dve. Primer za mno"zenje dveh binarnih "stevil

 

Iz ena"cbe (1) vidimo, daje potrebno mno"zitelj pomikati v desno, mno"zenec pa v levo. "Ce je bit mno"zitelja, ki smo ga izrinili ena, potem je potrebno kon"cni vsoti pri"steti za en bit v levo pomaknjen register mno"zenca. "Ce to ponovimo za vse bite, dobimo rezultat, ki je v splo"snem dvobajtni, zato je potrebno za mno"zenec in kon"cno vsoto rezervirati dvobajtni spremenljivki. Primer takega mno"zenja je prilo"zen na izpisu. Program je napisan kot podprogram tako, da ga je mo"zno ve"ckrat uporabiti. V akumulatorja A in B damo "stevili, ki jih "zelimo zmno"ziti. Zmno"zek pa dobimo v na spominski lokaciji rez16. Z ukazom SWI prepusti procesni modul nadzor razhro"s"cevalniku, potem ko sma program pognali brez nastavljene to"cke prekinitve.



Leon Kos
Mon Apr 22 07:44:22 GMT+0100 1996