AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Overflow

Ein Thema von DelphiFreund · begonnen am 10. Dez 2004 · letzter Beitrag vom 12. Aug 2006
 
Muetze1
(Gast)

n/a Beiträge
 
#11

Re: Problem mit Overflow

  Alt 11. Aug 2006, 21:03
Der Try/Except Block überprüft gar nix sondern kommt einfach nur zur Ausführung, wenn eine Exception auftritt.

So, ich habe mir das ganze mal angeschaut und musste feststellen, das die Überlaufprüfung nicht wirksam ist, wenn man Bytes addiert. Dadurch das die 32 Bit Register nutzt, wird das Overflow Flag nicht gesetzt, da auch 32-bittig addiert wird. Wenn aber nun die Bereichsprüfung mit eingeschaltet ist, dann überprüft er danach das Ergebnis, ob es kleiner gleich 255 ist und somit in ein Byte passt. Ist dies nicht der Fall, dann schmeisst er die ERangeError Exception.

Im Anhang ein Bild vom erzeugten Code beim addieren von 2 Bytes zu einem 3. Byte mit Überlauf. Man sieht gut den Sprung bei gesetztem Overflow Flag (jno), die Begrenzung der Werte vor der Addition (and xxx, $00ff) und den Sprung bei Werten kleiner gleich 255 über die BoundError Auslösung.
Angehängte Grafiken
Dateityp: gif boundscheck_204.gif (93,6 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz