Delphi-PRAXiS
Seite 6 von 10   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Maschinensprache (https://www.delphipraxis.net/31751-maschinensprache.html)

MaBuSE 20. Okt 2005 12:46

Re: Maschinensprache
 
Zitat:

Zitat von nieurig
Hallo Mabuse!
Super Anleitung/Beschreibung
Angesichts der heutigen Tools fällt es schwer jemandem die absoluten Grundlagen darzustellen. Dein Text ist Spitze.
Niels

Danke

Dussel 20. Okt 2005 14:54

Re: Maschinensprache
 
Dass binär und hexadezimal das gleiche ist, ist mir klar. Deshalb habe ich binär ja auch als Alternative in Klammern geschrieben. Das sollte nur heißen 'Wenn jemand ein entsprechendes Programm binär schreiben kann, dann muss er es nicht in hexadezimal umschreiben.'
Die Gründe, warum ich nicht Assembler möchte, sind erstens, dass ich mich dann wieder in einen Assemblers einarbeiten muss, zweitens möchte ich so systemnah wie möglich programmieren und drittens möchte ich auch irgendwann mal *.exe oder andere Dateien lesen können, ohne sie zu disassemblieren (was mit nicht *.exe Dateien ja auch gar nicht funktioniert, oder?)

NicoDE 20. Okt 2005 15:11

Re: Maschinensprache
 
Zitat:

Zitat von Dussel
drittens möchte ich auch irgendwann mal *.exe oder andere Dateien lesen können, ohne sie zu disassemblieren

Wie soll das in der Praxis aussehen?

Zitat:

Zitat von Dussel
(was mit nicht *.exe Dateien ja auch gar nicht funktioniert, oder?)

Warum nicht? Prozessoranweisungen sind Prozessoranweisungen...

tommie-lie 20. Okt 2005 15:12

Re: Maschinensprache
 
Zitat:

Zitat von Dussel
Die Gründe, warum ich nicht Assembler möchte, sind erstens, dass ich mich dann wieder in einen Assemblers einarbeiten muss

In die Architektur musst du dich sowieso einarbeiten. Nur wirst du dir die Opcodes vermutlich nicht so leicht merken können, wie die Mnemonics dazu. Und Address-Relocation auf Labels ist auch sehr viel angenehmer, als das Abzählen im Kopf.

Zitat:

Zitat von Dussel
zweitens möchte ich so systemnah wie möglich programmieren

Diesen Ehrgeiz in allen Ehren, aber Assembler ist systemnah genug um landläufig als das geekigste Lebewesen ver known zu gelten.

Zitat:

Zitat von Dussel
drittens möchte ich auch irgendwann mal *.exe oder andere Dateien lesen können, ohne sie zu disassemblieren

Oha, also mehrere hunderttausend Byte einfach mal so lesen, nur indem du nir die Zahlen anschaust. Wenn du das Ziel erreicht hast: Rehspeck! Du weißt aber schon, daß es mehr als hundert verschiedene Mnemonics gibt, die auch noch je nach Parameter völlig verschiedene Opcodes haben können, während sie für den menschen inhaltlich fast gleich sind? Es gibt einen Grund, warum auf modernen Architekturen sich niemand mehr für Opcodes interessiert.

Zitat:

Zitat von Dussel
(was mit nicht *.exe Dateien ja auch gar nicht funktioniert, oder?)

Stimmt, ein BMP-Bild habe ich noch nicht disassemblieren können, ich weiß einfach nicht, was ich falsch mache.

Zitat:

Zitat von Dussel
Kann mir jemand sagen, wie das 'hello world' Programm (als hexadezimales Programm) betriebssystemunabhängig aussieht? Im Tutorial steht es als Assembler, ich hätte es aber lieber in Hexadezimal (oder binär) programmiert.

Falls du damit mein Programm meinst: Assembliere es mit GAS und betrachte das Resultat in einem Hexeditor oder schreibe es mit bin2hex in eine Textdatei.

MaBuSE 20. Okt 2005 17:00

Re: Maschinensprache
 
Zitat:

Zitat von Dussel
Die Gründe, warum ich nicht Assembler möchte, sind erstens, dass ich mich dann wieder in einen Assemblers einarbeiten muss, zweitens möchte ich so systemnah wie möglich programmieren und drittens möchte ich auch irgendwann mal *.exe oder andere Dateien lesen können, ohne sie zu disassemblieren (was mit nicht *.exe Dateien ja auch gar nicht funktioniert, oder?)

Lies das hier mal bitte durch:
Wofür eignet sich Assembler?

Du kannst also alle Hex Codes der Mnemonics auswendig lernen und dann kannst Du auch im Kopf Maschienensprache lesen.

Eine kleine Auswahl an Assemblerbefehlen (inkl. Maschienencode) findest Du hier:
http://de.wikibooks.org/wiki/Assembl...efehlsreferenz

Hier ist eine etwas vollständigere Liste der Befehle, aber ohne die entsprechenden Maschienencodes:
http://moab.eecs.wsu.edu/~ee314/handouts/x86ref.pdf

Viel Spaß ;-)

Speedmaster 20. Okt 2005 17:38

Re: Maschinensprache
 
Zitat:

Zitat von Dussel
Dass binär und hexadezimal das gleiche ist, ist mir klar. Deshalb habe ich binär ja auch als Alternative in Klammern geschrieben. Das sollte nur heißen 'Wenn jemand ein entsprechendes Programm binär schreiben kann, dann muss er es nicht in hexadezimal umschreiben.'
Die Gründe, warum ich nicht Assembler möchte, sind erstens, dass ich mich dann wieder in einen Assemblers einarbeiten muss, zweitens möchte ich so systemnah wie möglich programmieren und drittens möchte ich auch irgendwann mal *.exe oder andere Dateien lesen können, ohne sie zu disassemblieren (was mit nicht *.exe Dateien ja auch gar nicht funktioniert, oder?)

Das finde ich schwachsinn!

Auch wenn die Gefahr besteht das mich ein Mod umbringt:
Wozu in Maschienencode Programmieren wenn es Hex gibt, und wozu in Hex Programmieren wenn es ASM gibt, und wozu in ASM Programmieren wenn es Hochsprachen gibt( Auch die in verschiedenen Generationen )?

Du kannst genauso anfangen deinen Prozessor selber zusammenbauen, und das ist allergrößter Schwachsinn!
Nicht umsonst hat man asm und Hochsprachen eingeführt, die einzigen die vielleicht heute noch mit HEX und Maschienencode zu tun haben sind wohl die Entwickler von Prozessoren die neue Befehle einführen( Stichwörter: MMX, SSE , 3DNOW ), und selbst dort haben sie denke ich sicherlich geeignete Tools und Geräte um sich das leben leichter zu machen!

Selbst Betriebssysteme lassen sich mit mit einer Hochsprache und einem Speziellen Compiler entwickeln( Ob die Basis auch damit Entwickelt wird ist Fraglich, aber ich hatte mal einen Link wo drinstand wie es geht )!

Um es kürzer auszudrücken: Du kannst auch gleich mit einem Stock gegen einen Panzer anrennen, weit kommst du damit nicht! Wenn dir Delphi nicht gefällt such dir >>hier<< eine Sprache aus, oder versuchs mal mit Brainf*ck!

hf & gl

tommie-lie 20. Okt 2005 18:11

Re: Maschinensprache
 
Zitat:

Zitat von Speedmaster
Wozu in Maschienencode Programmieren wenn es Hex gibt

Allein durch diesen Halbsatz disqualifizierst du dich eigentlich schon :mrgreen:

Zitat:

Zitat von Speedmaster
und wozu in ASM Programmieren wenn es Hochsprachen gibt( Auch die in verschiedenen Generationen )?

Um die Architektur zu verstehen und weil man einige Dinge in Assembler besser gebacken kriegt als in mittelmäßigen Hochsprachen.

Zitat:

Zitat von Speedmaster
Du kannst genauso anfangen deinen Prozessor selber zusammenbauen, und das ist allergrößter Schwachsinn!

Wieso? Vielleicht kommt ja ein CISC bei raus :mrgreen:

Zitat:

Zitat von Speedmaster
die einzigen die vielleicht heute noch mit HEX und Maschienencode zu tun haben sind wohl die Entwickler von Prozessoren die neue Befehle einführen( Stichwörter: MMX, SSE , 3DNOW ), und selbst dort haben sie denke ich sicherlich geeignete Tools und Geräte um sich das leben leichter zu machen!

Stimmt, die Tools nennen sich "Assembler".

Zitat:

Zitat von Speedmaster
Selbst Betriebssysteme lassen sich mit mit einer Hochsprache und einem Speziellen Compiler entwickeln( Ob die Basis auch damit Entwickelt wird ist Fraglich, aber ich hatte mal einen Link wo drinstand wie es geht )!

Mit einer normalen Hochsprache kriegst du kein Betriebssystem hin.

Speedmaster 20. Okt 2005 19:45

Re: Maschinensprache
 
Zitat:

Zitat von tommie-lie
Mit einer normalen Hochsprache kriegst du kein Betriebssystem hin.

Soso, C++ zählt also nicht zu einer Hochsprache? Sicherlich, um asm kommst du nicht rum, aber eine Hochsprache ist C++ trotzdem! Zudem sagte ich ja mit einem Speziellen kompiler, habe natürlich vergessen zu sagen das man auch Spezielle Libs braucht!

Zitat:

Zitat von tommie-lie
Um die Architektur zu verstehen und weil man einige Dinge in Assembler besser gebacken kriegt als in mittelmäßigen Hochsprachen.

Hmm, das kann sein( Wenn nicht umbedingt .NET im Spiel ist ), allerdings ist der Geschwindigkeitsunterschied nicht so krass, und du Programmierst mit einer Hochsprache mit großer Wahrscheinlichkeit schneller( Gibt natürlich Leute wie uall )!

tommie-lie 20. Okt 2005 19:56

Re: Maschinensprache
 
Zitat:

Zitat von Speedmaster
Sicherlich, um asm kommst du nicht rum

Danke daß du mir zustimmt, so what?
Allen mir bekannten Hochsprachen fehlen Sprachelemente um bestimmte Dinge zu machen, die in einem Betriebssystem zwingend notwendig sind, ein Betriebssystem lässt sich also nicht mit einer der bekannten Hochsprachen möglich, sondern man benötigt einige tausend Zeilen Assembler dafür. Daß der weitaus größere Teil aktueller Betriebssysteme in einer Hochsprache geschrieben ist, zweifele ich ja nicht im geringsten an, ich weiß nämlich, daß es so ist.

Zitat:

Zitat von Speedmaster
allerdings ist der Geschwindigkeitsunterschied nicht so krass

Kommt auf den Anwendungsfall an. Man ist in Assembler schon mal gerne um Größenordnungen schneller als der Compiler (zumindest geht das beim Delphi-Compiler, ich gebe zu, GCC/C++-Compilate habe ich mir noch nicht angeschaut).

Neotracer64 20. Okt 2005 20:14

Re: Maschinensprache
 
Doch es wäre wirklich möglich ein OS ganz ohne einen Code in Assembly geschrieben zu haben zum laufen zu bringen.

Letztendlich wird doch alles was man in einer Hochsprache programmiert in Maschinencode umgewandelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr.
Seite 6 von 10   « Erste     456 78     Letzte »    

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