Assembler i8080 delenie

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
jararak
Moderátor
Moderátor
Príspevky: 3115
Dátum registrácie: Št 13. Jan, 2005, 20:00
Bydlisko: Kosice, Bratislava (29)

Assembler i8080 delenie

Príspevok od používateľa jararak »

Ahojte
troska lammer v tejto oblasti (studujem cele 3 hodky :)

Potreboval by som pomoct s delenim, nasiel som nieco v zmysle, ze samotne delenie v 8080 nieje podporovane, avsak islo by to ojebabrat cez loop

Kód: Vybrať všetko

divr:
mvi c,0
mvi d, 0                   ;nuluj jedno c a d
cmp b                       ;porovanj citatel s menovatelom
jc divr_less		; ak je citatel mensi...
divr_loop:
inr c			; inkrementuj podiel
sub b			; odcitaj menovatel od citatela raz
cmp b		; porovnaj citatel s menovatelom
jnc divr_loop	; ak je vacsi, opakuj slucku
mov d, a		; inak presun zvysok do D
ret
divr_less:
mvi c, 0		; podiel je 0
mov d, a		; zvysok v A, presun do D
kedze to chcem hodit do ineho mnou uz ako tak naklepaneho programu otazka na mieste je

ako zadat menovatel?

Vysledok tohto programu ma byt funkcia, ktora mi vydeli hodnotu /2 a urci ci je zvysok 0, nasledne incrementuje nejaku premennu.

nudi sa niekto natolko aby mi s tym helfol?
Watching you ...

Modra je dobra a preto ju mam aj v logu.
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler i8080 delenie

Príspevok od používateľa Shatterhand »

No...veľmi na rýchlo - "SHR príslušný_register, 1" (ShiftLogicalRight posunieš bity o 1 doprava, a tým pádom vydelíš dvomi). Nad tým zvyškom sa mi nechce rozmýšlať, sorry :)
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push

Návrat na "Programovanie"