Mit wie hohen Zahlen kann ich rechnen?
-
Hallo!
Mit wie hohen Integer-Zahlen kann man in 32-bit Assembler eigentlich rechnen also z.B. mit add/div/mul mnenonic. In anderen Programmmiersprachen gibt's ja auch Integer-Datentypen mit Begrenzungen?
-
hi!
es gibt für alles irgendwelche algos (weiß ich jetzt auf die schnelle nicht), aber am besten du versuchst dich mit 32bit-programmierung, d.h. 32 bit register und so. da gehts am einfachsten. wenn du willst kann ich dir mal den additions-algo raussuchen.
cu todo
-
Ja, das will ich eben bis wieviel man standardmässig mit den standardmnenonics rechnen kann. Das man sich theoretisch einen "Datentypen" bauen kann mit dem man bis ins unendliche (solange der Speicher reicht) rechnen kann ist mir auch schon klar. sowas suche ich nicht!
-
ein 32bit vorzeichenlose Information kann 2^(sprich "hoch")32 Zustände annehmen,
das entspräche einem Zahlenraum von 0 bis 2^32-1 was 4294967295 ist.
Mit dem Overflow Flag, lassen sich jedoch theorethisch nahezu belibig grosse Zahlen bearbeiten.bei Fließkommaoperationen sieht das anders aus, aber da muß ich gleich nochmal nachschlagen, ich meine die währen insgesammt 80bit gorß besäßen eine 64bit Mantisse und einen 16 bit Exponenten, bin mir aber nicht sicher.
mfg
-bg-
-
Bis 4294967296 unsigned. Überschreitest du diese Grenze mit einem mul oder add wird das Carry-Flag gesetzt, das du dir wie ein 33 Bit vorstellen kannst.
Das Carry Flage kannst du auswerten, z.B. mit Sprungbefehlen jc,jnc (oder so).Neuere Prozessoren (ich weiss es nur von MMX), können auch Quadwords (64Bit) verarbeiten!
-
Vielen Dank Leute! Das wollte ich wissen. Dann wäre es ja genausogroß wie der Integer-Datentyp in C/C++. Brauch ich jetzt noch spezielle 32-bit Rechenoperationen oder geht das ganz normal mit add/mul/div usw...?
-
Ja, geht auch alles ueber add, mul, usw.
BTW: Mit mul/div koennen in eax und edx auch 128Bit-Werte verarbeitet werden.
-
Original erstellt von Nobuo T:
Ja, geht auch alles ueber add, mul, usw.
BTW: Mit mul/div koennen in eax und edx auch 128Bit-Werte verarbeitet werden.Sicher? eax und edx sind doch nur jeweils 32Bit bzw. zusammen 64Bit groß.
-
Original erstellt von <MaTaK>:
Sicher? eax und edx sind doch nur jeweils 32Bit bzw. zusammen 64Bit groß.Stimmt auffallend.
-
Wie wäre es die FPU zu benutzen? Soweit ich weiß rechnet die mit 80 bits. Vielleicht für Ganzzahlrechnungen wegen der Genauigkeit und so nicht unbedingt zu gebrauchen. Man werfe einen Blick ins FAQ wo auch ein Link zur FPU Beschreibung bei Intel liegt.