WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Programmieren Allgemein ( ASM und C) (http://www.wcm.at/forum/showthread.php?t=131424)

harry3 14.04.2004 22:47

Programmieren Allgemein ( ASM und C)
 
Hallo!


Ich hätte mal eine eher allgemeine Frage zum Programmieren:
Man sagt ja das Assembler am maschinennächsten ist, weil dort eder Befehl 1:1 umgesetzt wird.
Kann man also auch noch *.exe Dateien mit ASM erstellen für den PC?(wäre mir neu!)
Ich habe zwar schon ein bisschen C programmiert(aber nur in Turbo C++, also nix Windows), aber übers compilieren hab ich mir noch nicht so Gedanken gemacht.
Eine in C geschriebene Datei wird also dann in ASM Code umgewandelt, oder? Könnte ich also theoretisch diesen Code auch händisch eintippen und dann kompilieren???

Ich frage nur interessehalber, weil man bei meinem Taschenrechner auch ASM Programme verwenden kann, erst seit kurzem gibts auch eine C IDE dazu. C muss also auf ASM aufbauen...also deswegen kam mir der Gedanke dass man eben auch einfache Anwendungen für den PC direkt so schreiben kann oder???
Vor allem wenn auf Hardwarenähe zu achten ist wird man wohl ASM der Sprache C vorziehen(wenn ich mir ansehe wie hardwarenahe da gerechnet wird)???

Und noch was: Man könnte also theoretisch für jede Hardware C aufbauend auf ASM machen. Also könnte man auch für kleine Prozessoren , die man normalerweise in ASM programmiert, ein C Kompilierungsprogramm schreiben, so dass man auch diese Bauteile in C programmieren kann?

Wie schon gesagt, die Fragen sind eher theoretisch, würde mich aber trotzdem über Antworten freuen.


Viele Grüße,
Harri

Tarjan 14.04.2004 23:40

Wenn du einen entsprechenden Compiler hast kannst du jede Programmiersprache für jede Plattform verwenden, bzw mittels des Compilers in den Maschienencode umwandeln. Assembler ist im Prinzip ja auch eine Programmiersprache, nur dass diese sehr Prozessornahe ist. C hingegen ist eine Hochspache, d.h. sie ist nicht sehr Hardwarenahe. Die Umsetzung erfolgt eben vom Compiler.

Der Compiler erzeugt allerdings keinen Assemblercode sondern Maschienencode direkt. Genauso wie das gleiche Assemblerprogramm eben den Maschinencode erzeugt. Dass aus C Assemblercode erzeugt wird habe ich allerdings noch nicht gehört, was aber nicht heist dass es unmöglich ist. Da ja Assembler und Maschienencode sich sehr nahe stehen ist durchaus ein Compiler vorstellbar der Assemblercode erzeugt. Nur würde das nichts bringen, da der Assemblercode ja auch wiederum compiliert werden müsste.

kikakater 15.04.2004 15:09

Zu Deinem Anliegen habe ich etwas passendes:

LCC Win32

C IDE (=Shell =Arbeitsumgebung =Entwicklungsumgebung)

LCC Win32 besteht aus der GUI Shell (Graphical user interface Zentrale) und den Programmen Compiler, Linker, Resourcedesigner

Unter anderem kann man sich mit diesem Compilersystem ASM Dateien aus den C Dateien erzeugen lassen ...

Einstellen kann man die Erzeugung von ASM Quelldateien im Menü Compiler > Settings -> Compiler settings

Beispiel:

Hello World

harry3 15.04.2004 22:22

Danke für Eure Antworten!

@Tarjan: Stimmt, es wird gleich Maschinencode erzeugt. Wäre ja sinnlos zuerst ASM Code erstellen, den eh keiner liest, und daraus dann erst Maschinencode zu erzeugen!

Viele Grüße,
Harri

kikakater 15.04.2004 22:33

Kleine Korrektur dazu: Es werden bei der Compilierung - ! im Speicher ! - Memnonics (=u.a. und hauptsächlich Assembleranweisungen) angelegt (vor allen Dingen wegen Optimierungen ist dies unter allen Umständen unbedingt NOTWENDIG).

Erst diese Memnonics - eben auch und fundamental Assembleranweisungen - werden in Maschinencode umgewandelt ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag