| 
| Autor | Beitrag |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Do 23.07.09 23:20 
 
Joa da hast du wohl recht     aber was mach ich wenn ich was coden will was es in Delphi nicht gibt aber in assambler schon oO? |  |  |  
| HelgeLange 
          Beiträge: 735
 Erhaltene Danke: 6
 
 Windows 7
 Delphi7 - Delphi XE
 
 | 
Verfasst: Fr 24.07.09 02:19 
 
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
 |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Fr 24.07.09 08:35 
 
	  |  MagicRain hat folgendes geschrieben  : |  	  | Ach.. wenn ich das xor weg nehme läuft das app nicht weil iein shit wert in edx steckt ohne es...inlineasm rockz | 
 ähm...
 EDX=32Bit register
 du schiebst buffer rein-->32bit wert
 was soll da den wert verfälschen? |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Fr 24.07.09 10:01 
 
Ich hatte nur eine frage bzw problem und wollte da gerne hilfe haben das ich kein Delphi pro bin weiß ich selber aber ihr konntet ja alles gleich ohne zu Lehnen nech man nicht schlecht! Mir hätte es gelangt einfach bei meinem Problem zu helfen und nicht ob es gut ist oder was auch immer   |  |  |  
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Fr 24.07.09 11:35 
 
Beim Programmieren sollte man immer auch auf den Stil achten und nicht nur, ob es funktioniert. Ob es funktioniert und korrekt ist sind zwar wichtige Punkte, bei weitem aber nicht die einzigen ... _________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Fr 24.07.09 11:55 
 
Ja das stimmt natürlich ja ich weiß wohl was ihr meint naja ihr habt ja recht....dann haben wir es ja jetzt   |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Fr 24.07.09 14:25 
 
letzte anmerkung:
 	  |  MagicRain hat folgendes geschrieben  : |  	  | Joa da hast du wohl recht  aber was mach ich wenn ich was coden will was es in Delphi nicht gibt aber in assambler schon oO? | 
 Wie jetzt?
 Hab bisher viele Programm reverst...es gab immer ein Delphi Äquivalent |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Fr 24.07.09 14:28 
 
Das zeig mir mal....   |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Fr 24.07.09 14:58 
 
andersrum:
Du hast behauptet, es gäbe etwas in ASM das delphi nicht hat
 Sprich-->eine existenz behauptung
 ich behaupte alles in asm geht auch in delphi
 Sprich-->AllQuantifiziert
 
 es ist einfacher ein gegenbeispiel zu finden, als alle ASM Befehle aufzuführen
 
 Also finde einen ASM befehl zu dem ich kein Delphi äquivalent finde!
 |  |  |  
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Fr 24.07.09 20:46 
 
	  |  Flamefire hat folgendes geschrieben  : |  	  | andersrum: Du hast behauptet, es gäbe etwas in ASM das delphi nicht hat
 Sprich-->eine existenz behauptung
 ich behaupte alles in asm geht auch in delphi
 Sprich-->AllQuantifiziert
 | 
 k, dann schreib mir mal bitte folgende Funktionalitäten in Delphi:
 - asm RDTSC end; - asm CPUID end; - asm RDMSR; WRMSR end; 	  |  Flamefire hat folgendes geschrieben  : |  	  | es ist einfacher ein gegenbeispiel zu finden, als alle ASM Befehle aufzuführen 
 Also finde einen ASM befehl zu dem ich kein Delphi äquivalent finde!
 | 
 Weil aller guten Dinge 3 sind:
 - asm IRET end; - asm CLI end; - asm STI end; Und dazu hab ich jetzt grad nicht das Handbuch "Assembler Ge-Packt", was links neben mir steht bemüht. Hätte ich das getan, wären hier sicherlich noch ein paar mehr Sachen aufgeführt ..._________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Fr 24.07.09 21:01 
 
Tja da bin ich dann ja mal sehr gespannt oh ja    Dann zeig mal was du kannst aber du machst das ja in paar sekunden fertig nech? |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Fr 24.07.09 22:02 
 
ach komm magicrain. als wüsstest du was die instruktionen machen    nein ok. RDTSC sollte meiner meinung nach irgendwie richtung QueryPerformanceCounter gehen
 aber gut ich gebe zu, bei diesen instruktionen finde ich grade nichts in delphi.
 Allerdings 2 dinge: z.B. IRET usw. wird vermutlich in keinem delphi programm gebraucht. denke da eher an verwendung in treibern o.ä. die man dann eh in asm schreiben wird, oder?
 2) ist es möglich, dass es möglichkeiten dafür auch in delphi gibt, aber halt etwas anders. in diesem fall geht es vermutlich 1:1 nicht (müsste zu lange suchen um es sicher zu sagen) vl ist es auch so wie der TEST befehl, der ohne den folgenden Jump auch nicht in delphi zu übersetzen ist.
 trotzdem bleibt dabei: ein normales programm, dass man als asm vorliegen hat, kann man zu 99% in pure Delphi übersetzen. |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Sa 25.07.09 03:31 
 
bla bla bla.....mach mal weiter auf dicke hose du held...ich halt mich da jetzt raus muss ich mir net geben... |  |  |  
| elundril 
          Beiträge: 3747
 Erhaltene Danke: 123
 
 Windows Vista, Ubuntu
 Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
 
 | 
Verfasst: Sa 25.07.09 06:16 
 
	  |  BenBE hat folgendes geschrieben  : |  	  | - asm RDTSC end;
 
 | 
 Instruction RDTSC returns the TSC in EDX:EAX. => Imho Äquivalent zu GetTickCount oder?_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
 |  |  |  
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Sa 25.07.09 10:41 
 
	  |  Flamefire hat folgendes geschrieben  : |  	  | ach komm magicrain. als wüsstest du was die instruktionen machen  | 
 Dafür gibt's Dokumentation    	  |  elundril hat folgendes geschrieben  : |  	  | 	  |  BenBE hat folgendes geschrieben  : |  	  | - asm RDTSC end;
 
 | 
 Instruction RDTSC returns the TSC in EDX:EAX. => Imho Äquivalent zu GetTickCount oder?
 | 
 Nope. GetTickCount liefert einen völlig anderen Wert. Mit Zeitmessung hat's aber was zu tun    	  |  Flamefire hat folgendes geschrieben  : |  	  | nein ok. RDTSC sollte meiner meinung nach irgendwie richtung QueryPerformanceCounter gehen | 
 Was denkst Du, was QueryPerformanceCounter intern aufruft    In Delphi kannst Du somit die Funktion nur nutzen, weil sie einmal in ASM geschrieben wurde.
 	  |  Flamefire hat folgendes geschrieben  : |  	  | aber gut ich gebe zu, bei diesen instruktionen finde ich grade nichts in delphi. | 
 Stammen alle aus der Kernel-Mode-Programmierung. Sicherlich, das war etwas gemein, Kernel-Mode-Programmierung von ASM anzuführen, für etwas, was in Delphi nicht geht; prinzipiell (und das hat   uall@ogc  gezeigt) gehen Kernel-Mode-Geschichten aber auch mit Delphi, wenn man weiß, was man tut.
 	  |  Flamefire hat folgendes geschrieben  : |  	  | Allerdings 2 dinge: z.B. IRET usw. wird vermutlich in keinem delphi programm gebraucht. denke da eher an verwendung in treibern o.ä. die man dann eh in asm schreiben wird, oder? | 
 Treiber werden üblicherweise in C implementiert, wobei nur da, wo's notwendig ist mal eben ein paar Zeilen mit ASM gehackt werden. Schau Dir die Sources vom Linux-Kernel an: Das ist nahezu ausschließlich C-Code.
 	  |  Flamefire hat folgendes geschrieben  : |  	  | 2) ist es möglich, dass es möglichkeiten dafür auch in delphi gibt, aber halt etwas anders. | 
 Die uallCollection wäre eine davon. Erfordert aber ein wenig Wissen darüber, was man tut.
 	  |  Flamefire hat folgendes geschrieben  : |  	  | in diesem fall geht es vermutlich 1:1 nicht (müsste zu lange suchen um es sicher zu sagen) | 
 Keiner der genannten Befehle kann in Delphi übersetzt werden, da die ersten 3 Befehle auf Spezialregister der CPU zugreifen (Das TSC ist nur ein weiteres MSR - Model Specific Register). Bei den letzten 3 Befehlen handelt es sich um Befehle zur Interrupt-Steuerung - auch das ein Bereich, für den es in Delphi keine Umsetzung gibt. Vergleichbar wären hier noch Critical Sections, die jedoch intern über Sprünge in den Kernel-Mode bzw. Interrupt-Sperren implementiert sind.
 	  |  Flamefire hat folgendes geschrieben  : |  	  | vl ist es auch so wie der TEST befehl, der ohne den folgenden Jump auch nicht in delphi zu übersetzen ist. | 
 Der Test-Befehl ist ohne Probleme in Delphi übersetzbar: Var1-Var2. Wichtig ist hier für eine konkrete Übersetzung aber der Kontext. Und um es vorwegzunehmen: TEST geht auch ohne Sprungbefehle zu nutzen:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 
 | asmTEST EAX, EAX
 SETZ AL
 MOVZX, EAX, AL
 end;
 |  Die Übersetzung wäre in diesem Fall:
 		                       Delphi-Quelltext 
 Wobei Delphi diesen Code nie generieren würde ...
 	  |  Flamefire hat folgendes geschrieben  : |  	  | trotzdem bleibt dabei: ein normales programm, dass man als asm vorliegen hat, kann man zu 99% in pure Delphi übersetzen. | 
 Dagegen hat auch niemand was gesagt. Ich hab nur deinen "ASM ist echte Teilmenge von Delphi"-Ausspruch widerlegt ...
 @Flamefire: Pass auf beim Klugscheißen; das könnte jemand besser beherrschen  _________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Sa 25.07.09 13:46 
 
ja gut zugegeben...ich hab halt dünnschiss und du legst ne richtig fette wurst xD
 	  | Zitat: |  	  | Was denkst Du, was QueryPerformanceCounter intern aufruft   | 
 ich weiß
 darum hatte ich es geschrieben.
 und auch wnn in QueryPerformanceCounter intern ein asm befehl steckt: aufruf von QueryPerformanceCounter  ist delphi, oder? alos gilt das ganze    dann bei dem thema gleich mal:
 ich hatte TEST EAX,xxx
 JE z
 immer übersetzt mit if (EAX AND xxx=0) dann springe
 ist es denn echt eine subtraktion?
 denn:
 TEST EAX,2
 JE z
 springt ja nicht (nur) bei EAX=2 sonder auch bei eax=3,7 usw
 	  | Zitat: |  	  | Dagegen hat auch niemand was gesagt. Ich hab nur deinen "ASM ist echte Teilmenge von Delphi"-Ausspruch widerlegt | 
 Ich habe nicht gesagt, dass es eine echte Teilmenge ist.
 Ich habe gemeint sie sind gleichwertig. Denn Alles was in Delphi geht geht auch in ASM-->Delphi ist Teilmenge von ASM
 Trivialerweise wahr, da Delphi "in ASM compiliert wird"
 und ich habe behauptet, dass alles was in ASM geht auch in Delphi geht: ASM ist Teilmenge von Delphi
 Wäre das war gilt: ASM=Delphi
 dummerweise stimmt der 2. Teil halt doch nicht.
 Ich habe die CPU spezifischen Befehle nicht bedacht. |  |  |  
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Sa 25.07.09 14:02 
 
Ach, es fängt ja schon bei Dingen wie IN und OUT an. TP konnte die damals auch in Pascal-Syntax; Delphi kann die nicht mehr. (In TP7 waren die einfach als Array eingemappt). Und IN\OUT hat nicht vordergründig was mit der CPU zu tun, sondern eher mit Hardware-Steuerung. _________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Sa 25.07.09 15:07 
 
Da hab ich auch ne frage zu und zwar folgender code...
 CMP EAX,10
 JNZ bla:
 
 Wenn ich sowas in einen Loop packen möchte gibt es da noch andere möglichkeiten das zu verwürklichen auzer GOTO label...end exit oder oO ? Ach und das ich noch nicht so gut in Delphi bin weiß ich selber ich komm hier her um noch was zu lernen oder das mir jemand bei meinen fehlern hilft. Bis jetzt war das auch immer der fall bis auf jetzt wo ich dafür das ich anfänger und kein PROFI bin angemacht werde. Finde ich irgendwie schade dafür sollte ein Forum eig auch da sein...können ja net alle solche PROFIS sein nech...
 
 Mfg
 |  |  |  
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Sa 25.07.09 15:15 
 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 |  |  |  
| MagicRain  
          Beiträge: 154
 
 WinXp, Win8, iOS
 Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
 
 | 
Verfasst: Sa 25.07.09 15:31 
 
Das ist schon richtig B! ich mach halt ziemlich oft sachen mit ASM und ja mischen ist wohl nicht so gut das stimmt schon aber wenn ich sachen habe die ich nicht besser weiß umzusetzen sehe ich da keine möglichkeit das anders zu machen mein Delphi-Basic wissen reicht wohl aber noch nicht aus. Aber deswegen komme ich ja hier her und frage euch wenn ich ein problem habe oder nicht mehr weiter weiß um als resultat was zu lernen...    		                       Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 
 | Da hab ich auch ne frage zu und zwar folgender code...
 CMP EAX,10
 JNZ bla:
 
 Wenn ich sowas in einen Loop packen möchte gibt es da noch andere möglichkeiten das zu verwürklichen auzer GOTO label...
 
 Ja.
 |   Ja und wie    wie kommt man auf sowas ? :S ich hab echt keine ahnung... |  |  |  |