Thema: Delphi Rechenaufgabe

Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Rechenaufgabe

  Alt 17. Jul 2006, 12:11
Hi Manuel!

Der ASM-Code ist die 1:1-Übersetzung deines Delphi-Codes. 'cdq' ist die vorzeichenrichtige Erweiterung von EAX auf 64 Bit (in EDX:EAX). Nach dem 'cdq' steht also in EDX entweder eine 0 (bei positiven Zahlen) oder eine -1 (bei negativen Zahlen). Bei positiven Zahlen verändern 'xor' und 'sub' somit den Inhalt von EAX nicht, bei negativen Zahlen entspricht 'xor' dem 'not', das 'sub' subtrahiert -1 (addiert also +1). Das ganze ohne Sprungbefehle, welche den Prozessor u. U. ausbremsen könnten.

Das 'do' war wohl nur ein Schreibfehler...

Gruß Hawkeye
  Mit Zitat antworten Zitat