Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi IDE für reinen Assembler "missbrauchen" ? (https://www.delphipraxis.net/48410-delphi-ide-fuer-reinen-assembler-missbrauchen.html)

Neotracer64 24. Jun 2005 20:40


Delphi IDE für reinen Assembler "missbrauchen" ?
 
Ich will mir Assembler mal etwas genauer anschauen. Bisher konnte ich das nur so oberflächlich.

Und jetzt wollte ich wissen ob man die Delphi IDE nicht einfach komplett als Assembler missbrauchen kann. Also ich schreib nen Konsolen-Programm und direkt hinter begin fang ich gleich mit dem ASM an, und schreibe ab da komplett nur assembler.

Würde das gehen ? Gäbe es Einschränkungen (Geht damit alles was sonst mit Assembler geht) ? Gibt es sonstige Unterschiede ?

Matze 24. Jun 2005 20:45

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
mittels

Delphi-Quellcode:
asm

...

end;
Kannst du in Delphi normalen Assemler-Code verwenden.

Über die Einschränkungen kann ich dir leider nichts sagen.

stefan2005 24. Jun 2005 21:34

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
hi,
der Delphi Inline Assembler hat meiner Meinung nach viel zu viele Einschränkungen gegenüber einem richtigen Assembler. z.B. können dort keine Labels (somit keine globalen variablen und sprünge nach compares) eingefügt werden.

cu,
stefan2005

Phistev 24. Jun 2005 21:35

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
Variablendeklarationen sind damit auch nicht in Assembler möglich, da braucht man noch Delphi's var.

NicoDE 24. Jun 2005 23:35

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
Zitat:

Zitat von stefan2005
z.B. können dort keine Labels (somit keine globalen variablen und sprünge nach compares) eingefügt werden.

Delphi-Quellcode:
function Evil: Integer; register; assembler;
asm
        mov    eax, 42
end;

function Foo(Bar: Boolean): Integer; register; assembler;
asm
        cmp    Bar, False
        jz     @@exit
        jmp    Evil
@@exit:
end;

Neotracer64 25. Jun 2005 11:53

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
Danke für eure Antwortden. :thumb:
Würde das also bedeuten, dass die Delphi IDE jetzt wirklich mit anderen Assembler Compilern gleichzusetzen ist ?

Dann lern ich Assembler nämlich damit, weil es sich ja geradezu anbietet.

Ihr habt noch ne Chance mich davon abzubringen :cyclops:

negaH 25. Jun 2005 14:18

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
Zitat:

Würde das also bedeuten, dass die Delphi IDE jetzt wirklich mit anderen Assembler Compilern gleichzusetzen ist ?
Nein natürlich nicht.
Denoch empfehle ich dir mit dem Delphi Assembler anzufangen. Aussage wie "keine Labels", "keine bedingten Sprünge", "keine Variablen und Konstanten" snd absoluter Blödsinn. Selbst globale Labels sind indirekt damit möglich, logisch da man im Delphi Assembler sehr wohl eine externe Funktion/Procedure aufrufen kann, und das ist nichts anderes als ein "Label".

Fange mit Delphi an, baue immer schön kleine Asembler Funktionen. Als erstes reine Integer Arithmetik, Boolsche Operationen etc. pp. Mache dich dann mit dem CPU fenster vertraut das ist nämlich garnicht mal so schlecht. Als nächstes komplexere Datenstrukturen die du in reinem Pascal deklarierst und dann in Assembler zugreifst. Vorteilhaft ist das eben weil du reinen Pascal Code direkt mit deinem Assembler vergleichen kannst. Das ist weit BESSER als gleich mit einem reinem Assembler anzufangen. Später dann versuchst du die FPU -> Fließkommaoperationen in Assembler zu coden. Denn gerade in diesem Sektor erzeugt der Delphi Compiler nicht gerade optimierten Code. Und als letzten Schritt kannst du dich in spezielle Features der CPU's einarbeiten, zb. MMX, SSE2 oder AMD's Opcodes. All das kann man mit Delphis Assembler ohne Probleme coden. Ich behaupte mal das mit dem inline Assembler alles machbar ist was man mit jedem anderen Assembler auch machen kann.

Gruß Hagen

Neotracer64 25. Jun 2005 14:21

Re: Delphi IDE für reinen Assembler "missbrauchen"
 
Vielen dank Hagen :thumb:

Du bist bekannt für deine detailreichen und genauen Antworten, und ich danke dir, dass du dir die Zeit dafür genommen hast.

Natürlich auch ein Dankeschön an alle anderen.

:cheers:

:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz