Entwickler-Ecke
Algorithmen, Optimierung und Assembler - CDQ, SAR Entprechungen
Flamefire - Do 19.03.09 21:45
Titel: CDQ, SAR Entprechungen
Ich hab mich in letzter Zeit ein wenig mit reversing beschäftigt.
Ziemlich interessant soweit
Hab jetzt aber folgenden Code:
Quelltext
1: 2: 3: 4: 5:
| MOV EAX,[ECX] CDQ AND EDX,7 ADD EAX,EDX SAR EAX,3 |
was wäre die Delphi-entsprechung dafür?
das hier:
Delphi-Quelltext
1: 2: 3:
| a:=xyz; if(a<0) then a:=a+7; a:=a div 8 |
oder ist etwas anderes sinnvoller?
wozu könnte das cdq gut sein?
BenBE - Fr 20.03.09 12:50
CDQ = Convert DoubleWord to QuadWord (Sign Extend)
Könnte man in Delphi mit ner Zuweisung von Integer zu nem Int64 übersetzen.
CDQ ist analog zu MOVSX (Move with Sign Extend) außer, dass bei CDQ das Zielregister mit EDX:EAX fest vorgegeben ist.
Flamefire - Fr 20.03.09 16:16
ok
wenn ich die beschreibung richtig verstanden habe heißt es am ende einfach nur:
wenn x>=0-->EDX=0; EAX=x
wenn x<0-->EDX=-1, EAX=x
stimmt nun also meine (Pseudo-)Delphi-Entprechung?
Flamefire - So 05.04.09 18:53
nein war es nicht...hab mal mit delphi und dem cpu-fenster rumprobiert: es ist ein simples (x div 8) die überprüfungen sind nur damit es abgerundet wird (richtung 0)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!