Mit ist gerade aufgefallen, dass ich scheinbar doch noch ein paar Verstäntnissprobleme habe. Wenn ich in C eine 16Bit Variable definiere in einem 32Bit System und diese überlaufen lasse bis zur Unendlichkeit. Gibt es dann mögliche Auswirkungen auf andere Speicherbereiche, etwa weil die Highbyte der Speicherbank anderes genutzt werden, oder durch eventuell enstehende Flags die sich setzen? Die zweite Frage ist nach den gebrauchten Zyklen pro Operation, gibt es da Übersichten oder müsste man sich das aus dem Assampler selbst zusammen reimen? Dann wüsste man z.B. ob if Anfragen mehr zeit brauchen als Invertierer und Bitmasken zu benutzen ect. Gruß Ralf
Ralf schrieb: > Wenn ich in C eine 16Bit Variable definiere > in einem 32Bit System und diese überlaufen lasse bis zur Unendlichkeit. "Unendlich" gibt es bei 16- oder 32-Bit Werten nicht. Die einen können von -2^15...2^15-1 (bzw. 0...2^16-1), die anderen von -2^31...2^31-1 (bzw. 0...2^32-1) zählen, dann kommt jeweils ein Überlauf auf den negativsten Wert. Und dieses Verhalten ist unabhängig davon, ob du das auf einem 8, 16, 32 oder 64 Bit System machst. Es ist in der Sprache C so definiert. Und alles, was sich C-Compiler schimpft muss das können. > Gibt es dann mögliche Auswirkungen auf andere Speicherbereiche, etwa > weil die Highbyte der Speicherbank anderes genutzt werden, oder durch > eventuell enstehende Flags die sich setzen? Wie gesagt: uninteressant, denn der C-Compiler muss das korrekt umsetzen. > Die zweite Frage ist nach den gebrauchten Zyklen pro Operation, gibt es > da Übersichten oder müsste man sich das aus dem Assampler selbst > zusammen reimen? Du kannst das Assemblerlisting ansehen, und daraus nachrechnen, wieviele Takte der Code braucht. Oder du schreibst eine Routine, die vorher und nachher einen Zeitstempel nimmt und dann die Zeitdifferenz ausrechnet. > Assampler Hoppala... :-o
jaja Assembler versaut .... ich habe eben meine eigene Sprache (viel besser als Assembler^^).. danke dir und mit Unendlichkeit habe ich gemeint ich zähle immer eins drauf und möchte hat den Überlauf bzw. er ist geduldet, möchte aber keine Auswirkungen davon sehen. Dann bin ich erst mal beruhigt ;-)
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.