Was ist Assembler ?

12 Antworten

Auch wenn ich dir deine Fragen zur Genüge beantworten könnte, tue ich das jetzt aus Zeitmangel nicht. Außerdem haben dir die anderen schon genügend geschrieben (mit dem ich teilweise aber nicht einverstanden bin ... aber egal).

Nur so viel: Ich spüre, dass du gaaaanz kurz vorm Durchbruch bist! Jetzt bloß nicht aufgeben!

Halte dich einfach an die Tutorials auf der offiziellen NASM Website, und häng dich bei jedem auftretenden Problem rein, bis es läuft.

Ich weiß noch, wie das früher bei mir war ... ich habe auch ewig gebraucht, bis "Hello World" lief (das war so 1990), aber dann kam der Aha-Effekt und die Erfolge sprudelten nur so.

Gerade bei Assembler wirst du als Anfänger ganz am Anfang nicht alles verstehen können ... das ist aber egal, solange du einfach weiter machst. Irgendwann macht es dann schon "Klick".

Wenn erst einmal dein "Hello World" läuft, kannst du ja auch mal viele andere Assembler-Dialekte ausprobieren (v. a. x86-64 o. ARM), dich in eine andere Syntax einarbeiten (Intel vs. AT&T), verschiedene Assembler benutzen (NASM, MASM, GAS, HLA, o. sogar TASM, etc.) und die Interfaces wechseln (Interrupts & Syscalls o. Libc-puts).

Ich garantiere dir, dass wenn du JETZT aufgibst, wirklich etwas großes verpassen wirst! Sei dir dessen bewusst.

Assembler ist über all die Jahre hinweg eine meiner Lieblings-Sprachen (wenn man das überhaupt als Sprache bezeichnen will). Das, was damit möglich ist, bekommst du in keiner anderen Programmiersprache hin, auch wenn Aufwand und die investierte Zeit oft überproportional sind.

Relativ kurze Zeit, nachdem du dich eingefummelt hast, wirst du mit Assembler schon grafische Oberflächen und Netzwerksachen programmieren können, wobei die resultierende EXE (oder ELF) Datei deutlich kleiner als 1KB ist (im Schnitt 500 bis 700 Byte, z. B. für eine Webcam-Software mit Bildupload über FTP).

An der Stelle, an der du dich jetzt gerade befindest, trennt sich das erste mal die Spreu vom Weizen. Also mach weiter! "Hello World" wirst du auf jeden Fall hinbekommen!

Viel Erfolg! :)

Vielen dank! Ich habe es mittlerweile in der VM geschafft "Hello World" oder andere Texte auszugeben.

1

Ein Assembler ist ein Übersetzer für Programmcode, der sich aus Maschinenbefehlen zusammensetzt. Diese Befehle können sich je nach
verwendeten Prozessor stark unterscheiden.

In der Art der verwendeten Befehle besteht der wesentliche Unterschied zu allen anderen Programmiersprachen. Während sich Befehle bei den Hochsprachen in der Übersetzung aus mehreren Anweisungen im endgültigen Code zusammensetzen, wird der Assemblerbefehl durch den Assembler lediglich in die entsprechende Binärform übersetzt. Weiterhin ersetzt der Assembler Variablen durch die entsprechenden Speicheradressen.

Zitat aus http://assembler.hpfsc.de/

Man schreibt also keine Nullen und Einsen, sondern nutzt eine Befehlssyntax. Der Assembler übersetzt dann die Befehle auf direktem Weg in Nullen und Einsen (mal vereinfacht ausgedrückt), also in direkte Anweisungen für den Prozessor. Man spricht deshalb von hardwarenaher Programmierung (im Gegensatz zu Hochsprachen).

Hier gibt es ein Online-Buch für Anfänger:

https://de.wikibooks.org/wiki/Assembler-Programmierung_f%C3%BCr_x86-Prozessoren

und hier ein PDF:

http://avr-asm-download.de/beginner_de.pdf

Du findest im Netz noch viele weitere Informationen, ggf. solltest Du Dir auch ein gutes Anfänger-Buch kaufen, vielleicht gibt es eine gute Buchhandlung in Deiner Nähe, die entspr. Literatur anbietet.

Assembler ist ein maschinenorientierte Programmiersprache. Das bedeutet, für jede CPU gibt es einen eigenen.

Im Prinzip werden ja Maschinenbefehle durch Bytes dargestellt. Um das Programmieren anschaulicher zu gestalten, hat man nun diesen Bytes mnemotechnisch Abkürzungen zugeordnet. JPM (von 'jump') bedeutet z.B. 'springe zu' (einer folgenden Adresse).

Man konnte damit links einen Programmablaufplan erstellen und rechts daneben den entsprechenden Code schreiben.

ist dann da immer die Syntax komplett anders oder was?

Im Prinzip ja, da es vom Befehlsumfang der CPU abhängt.

sondern irgendein normales, wirres .exe-Gedöns: "ê| ú¸ ŽÐ¼ û¸ ŽÀŽØˆ)|è) ¸ ŽÀŽØê"

Das reassemblieren von Assembler-Programmen ist etwas schwierig. Erst einmal musst du ein Programm haben, das zu deiner Maschine passt. Zweitens besteht ein Programm nicht nur aus Programmcode, sondern auch aus Daten. Die Maschine kann aber gar nicht unterscheiden, was Code ist und was Daten sind. Wenn du wirklich eine binäre Darstellung brauchst (wieso eigentlich?) dann benötigst du ein Monitorprogramm.

Wiederum nicht dass ganze Gejammer dass Assembler eine schwere Sprache ist und und und.

Assembler ist keine schwere Sprache. Du beginnst halt nur bei Null (wobei ich wirklich Null meine) und musst dir meist ganze Bibliotheken erarbeiten (oder zur Verfügung gestellt bekommen) um die Arbeit tun zu können, die das Betriebssystem erledigt.

Man kann auch nicht in Assembler geschriebene Programme einfach ablaufen lassen (außer man hat einen Interpreter), sondern muss sie erst in Maschinensprache umwandeln (assemblieren). Auch das Verlinken muss extra geschehen.

Ich möchte ein BIOS erstellen?

Hallo, ich möchte mit der Assablersprache ein BIOS programmieren. Ich hätte gerne einen Link zu einem Programm und 1. eine Seite wo ich diese Programmiersprache lernen und verstehen kann 2. eine Seite wo ich den Quellcode zu einem BIOS bekommen bzw. abkopieren kann.

LG euer Fapper.

...zur Frage

Python-Datei mit .exe-Datei ausführen?

Hallo!

Wie kann man ein Python-Skript per exe-Datei ausführen?

Bei meinem Rechner habe ich Python im Verzeichnis D:\Python installiert, wenn ich ein Skript ausführen möchte gebe ich in cmd.exe "D.\Python\python.exe D:\PfadzumSkript" ein, damit es ausgeführt wird. Wie führe ich das Skript jetzt aus, wenn ich nicht cmd.exe, sondern eine selbstprogrammierte .exe-Datei hätte? Wenn ich die Stichwörter bei Google eingebe, kommt nur, wie man .py-Dateien in .exe-Dateien umwandelt.

VIelen Dank im Vorraus für eure Hilfe!

...zur Frage

Exe dateien auf android ausführen

Gibt es eine Möglichkeit exe dateien auf android aus zu führen?

...zur Frage

Exe dateien bearbeiten

hallo, ich möchte wissen, ob es eine freeware gibt, die .exe dateien öffnet und in eine Programmiersprache(z.Bsp. java, VB) so umschreibt, dass man den Quellcode sieht und diesen bearbeiten/löschen kann. Danke für eure Hilfe.

...zur Frage

Wer hatte den Assembler Compiler programmiert?

Der Assembler Compiler ist soweit ich weiß in Maschinencode geschrieben.

Wer war dieser Genie?

Mfg

...zur Frage

Windows System bzw TrustedInstaller Dateien modifizieren?

Ich suche nach einer möglichkeit Dateien im system32 ordner umzubennen. Das soll ohne admin rechte funktionieren (ich weiß, sehr ambitioniert) Also am besten wäre es über ne batch, also cmd, oder phython. Was aber auch gut wäre wäre eine datei die beim booten ausgeführt wird und die datei modifiziert bevor windows läd und das blockt. Leider habe ich damit keine Erfahrung, in was schreibt man da, C, assembler ? Naja, danke schon mal, LG Twizzy

...zur Frage

Was möchtest Du wissen?