Autor Beitrag
MagicRain Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 24.07.09 00:20 
Joa da hast du wohl recht :roll: aber was mach ich wenn ich was coden will was es in Delphi nicht gibt aber in assambler schon oO?
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Fr 24.07.09 03:19 
user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
Joa da hast du wohl recht :roll: aber was mach ich wenn ich was coden will was es in Delphi nicht gibt aber in assambler schon oO?


Bei Deinem jetzigen Kenntnisstand in Delphi wirst Du noch ein paar Jahre brauchen, bis Du an solche Grenzen stösst :p No offense ...

_________________
"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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 24.07.09 09:35 
user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 24.07.09 11: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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 24.07.09 12: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 24.07.09 12:55 
Ja das stimmt natürlich ja ich weiß wohl was ihr meint naja ihr habt ja recht....dann haben wir es ja jetzt :D
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 24.07.09 15:25 
letzte anmerkung:
user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
Joa da hast du wohl recht :roll: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 24.07.09 15:28 
Das zeig mir mal.... :roll:
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 24.07.09 15: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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 24.07.09 21:46 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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;

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Fr 24.07.09 22: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 24.07.09 23: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 25.07.09 04:31 
bla bla bla.....mach mal weiter auf dicke hose du held...ich halt mich da jetzt raus muss ich mir net geben...
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 25.07.09 07:16 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:

- 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 25.07.09 11:41 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
ach komm magicrain. als wüsstest du was die instruktionen machen ;-)

Dafür gibt's Dokumentation :P

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:

- 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 ;-)

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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 user profile iconuall@ogc gezeigt) gehen Kernel-Mode-Geschichten aber auch mit Delphi, wenn man weiß, was man tut.

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
asm
    TEST EAX, EAX
    SETZ AL
    MOVZX, EAX, AL
end;


Die Übersetzung wäre in diesem Fall:
ausblenden Delphi-Quelltext
1:
EAX := ord(EAX <> 0);					

Wobei Delphi diesen Code nie generieren würde ...

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
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 :mrgreen:

_________________
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Sa 25.07.09 14: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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 25.07.09 15: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 25.07.09 16: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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 25.07.09 16:15 
user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:
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

Der Punkt ist ein anderer: Es geht den meisten hier darum, dass man zuerst Delphi ausreichend gut beherrschen sollte, bevor man überhaupt daran denkt, ASM als ein Mittel zur Problemlösung heranzuziehen, da man zuerst wissen sollte, was man mit der Sprache tun kann, bevor man mit anderen Sprachen nachhilft. Das Mischen von Sprachen sollte dabei so selten wie möglich erfolgen, da es extrem unübersichtlich werden kann und auf Grund von Eigenheiten des Compilers meist wesentlich ineffizienter wird, als eine rein in einer der Möglichkeiten formulierten Lösung.

_________________
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154

WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
BeitragVerfasst: Sa 25.07.09 16: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... :)

ausblenden 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 :P wie kommt man auf sowas ? :S ich hab echt keine ahnung...