Schnelle Division in Asembli, wie aber?
-
Hallo
Ich habe eine aufgabe bekommen die hies. Schreibe 2 microprogramme die folgendes machen a)Schnelle Multiplikatsion b)Schnelle Division. Nun (a) habe ich gemacht. Aber schnelle division wie mache ich das. Ich habe nur eine normale division hinbekommen. Wie mache ich aber die schnelle (k*log2 n zeit). Wie mache ich so was, nun mit assemlei meint der lehrer so z.b.
Nun die befehle solten so ausehen
tue a in MDR (a->MDR)
b+MDR tue in C(a+MDR->C)
tue MDR =0 (MDR=0)
u.n.s.Wie mache ich das kann einer so etwas schreiben ich nicht, deshalb bitte um hilfe!
-
Nimm den DIV-Befehl. Der kann das in O(1).
-
SG1 schrieb:
Nimm den DIV-Befehl. Der kann das in O(1).
Der hat ne wechselnde Latency, also wahrscheinlich kein O(1) :p
-
TriPhoenix schrieb:
SG1 schrieb:
Nimm den DIV-Befehl. Der kann das in O(1).
Der hat ne wechselnde Latency, also wahrscheinlich kein O(1) :p
Ja und? Dann nimm das Maximum der Latenz an. Interessiert doch nicht.
-
SG1 schrieb:
Ja und? Dann nimm das Maximum der Latenz an. Interessiert doch nicht.
Dann nehme ich einen Algorithmus mit O(n), sagen wir n Takte bei dem Dividenden n. Dann weiß ich die größte Zahl ist 2^32 - 1. Also nehme ich einfach den wort case an und sage die Komplexität ist O(1), weil ich immer maximal 2^32-1 habe
Ich kenne den Algorithmus zwar nicht, kann mir aber gut vorstellen, dass es von der Zahl der Bits abhängt.
-
Das habe ich auch am anfang gedacht aber der PC kann nu "+" und schift!
Leute bitte helfen!!!
-
Meld dich bei mir mal in ICQ.
Dann schick ich dir ein PDF-Script von meinem Info-Prof.
Da wird erklärt wie der Rechner das intern macht.
-
Habe kein ICQ ich habe dir ne mail geschikt über dein name