Hallo Forum, ich versuche in Assembler die Exponentionalrechnung zu implementieren. Googeln hat so nichts richtiges gebracht und hier im Forum steht auch nichts was mir helfen könnte. Ich möchte es in Assembler machen und nicht in C oder einer anderen Hochsprache. Ich würde es auch gerne direkt und nicht indirekt über lg o.ä. machen. Es sollen nur ganze Zahlen exponiert werden. Kann mir jemand weiterhelfen?
Vielleicht hilft diese Seite: http://avr-asm.tripod.com/math32x.html Grundsätzlich gehe ich an sowas immer heran wie in der Schule, wenn man das erste Mal von etwas hört, also auf die Grundrechenarten reduzieren, die ein Prozessor beherrscht. Einfachste Methode, wenn du nur Ganzzahlen hast, wäre eine Schleife, die immer wieder die Basis multipliziert. Schwierig dürfte aber der Zahlenraum werden (8bit hoch 8bit ergibt 2048bit). Mark
Dachte ich mir auch am Anfang. Wenn Du 2^32 rechnen wolltest, müsstest Du jetzt die Multiplikationsschleife 32 mal durchlaufen. OK, das Beispiel ist nicht optimal, zeigt aber, daß auch bei "kleinen" Zahlen ein hoher Aufwand entsteht. Für diesen Aufwand müsste es doch eine "einfachere" Lösung geben.
>Googeln hat so nichts richtiges gebracht und hier im Forum steht auch
nichts was mir helfen könnte.
Jöööööö, der Superfaule. So wird das nichts.
>Dachte ich mir auch am Anfang. Wenn Du 2^32 rechnen wolltest, müsstest >Du jetzt die Multiplikationsschleife 32 mal durchlaufen. OK, das >Beispiel ist nicht optimal, zeigt aber, daß auch bei "kleinen" Zahlen >ein hoher Aufwand entsteht. Für diesen Aufwand müsste es doch eine >"einfachere" Lösung geben. Was soll es für eine einfachere Lösung geben? 2^32 heist einfach, daß Du die Zahl einfach nach links shiftest, und zwar 32 mal. Das was links runterfällt (übertrag), mußt du natürlich in weiteren Registern sichern, und mitshiften. Was ist daran so kompliziert?
Ein herzlichen Dank an Vuvuzelatus. Mit diesem Algo kann man was anfangen. Ein Hallo auch an unseren super schlauen Hex Oschi. Wenn ich schreibe ich habe gegoogelt, meine ich das auch. Ich schreibe hier im Forum um neue Ideen und vielleicht die Lösung zu bekommen. Kann ja nicht jeder mit einem überdurchschnittlichen IQ, wie z.B. Du, gesegnet sein. Hallo Jens G., is OK war schon dumm gewählt mein Beispiel. Ich hätte auch 3^15 sagen können, tschuldigung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.