AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EIntOverflow bei LongWord, nicht aber bei Word

Ein Thema von Der schöne Günther · begonnen am 28. Mai 2018 · letzter Beitrag vom 29. Mai 2018
 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: EIntOverflow bei LongWord, nicht aber bei Word

  Alt 28. Mai 2018, 18:08
Weil overflow checking nicht richtig bei Datentypen funktioniert, die kleiner als 32bit sind, da die Rechenoperationen auf den 32bit Registern ausgeführt werden.

Versuch doch mal das:
Delphi-Quellcode:
a := High(Word);
a := a + 1;
Disassembly für die 2. Zeile:
Delphi-Quellcode:
0041A834 0FB745FE movzx eax,[ebp-$02]
0041A838 83C001 add eax,$01
0041A83B 7105 jno $0041a842
0041A83D E836ACFEFF call @IntOver
0041A842 668945FE mov [ebp-$02],ax
jno ist "Jump if not overflow" - und hier gabs nunmal keinen Overflow, denn eax ist 32bit breit. Wenn er in Variable zurückschreibt, spricht er es allerdings nur als 16-bit an (ax).

Schreibst du allerdings statt a := a + 1; Inc(a); , dann gibts nen overflow.
Denn das wird zu

Delphi-Quellcode:
0041A85C 668345FE01 add word ptr [ebp-$02],$01
0041A861 7305 jnb $0041a868
0041A863 E810ACFEFF call @IntOver
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (28. Mai 2018 um 18:16 Uhr)
  Mit Zitat antworten Zitat
 


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 19:41 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-2025 by Thomas Breitkreuz