wake-up-neo.com

Was konvertiert Assemblersprache in Maschinencode

Ich bin neu in der Programmierung und habe mit C++ begonnen, soweit ich weiß, dass C++ vom C++ - Compiler (Beispiel: Visual Studio) in Assemblersprache konvertiert wird vom Computer verstanden und ausgeführt werden, aber ich konnte keine Antwort finden.

Die Frage ist also, wo und wie die Assemblersprache in Maschinencode konvertiert wird. ist es eine Art Compiler, der in das Betriebssystem integriert ist?

Danke im Voraus.

6
Karim K.

Einige Compiler (wie GNU) konvertieren den C/C++ - Code in Assembly-Code. Ein Tool namens "Assembler" konvertiert den Assemblycode in Maschinencode und ein Tool namens "Linker" verbindet mehrere Maschinencodedateien zu einer einzigen ausführbaren Datei (.EXE unter Windows). Mit den meisten dieser Compiler können Sie den resultierenden Assembler-Code in eine Datei schreiben, um den Assembler-Code anzuzeigen oder zu ändern.

Der Assembler und der Linker sind Teil der Toolkette, was bedeutet, dass sie normalerweise zusammen mit dem Compiler ausgeliefert werden.

Einige Compiler (wie Microsoft) konvertieren jedoch C/C++ - Code direkt in Maschinensprache, sodass kein Assembler mehr benötigt wird. Viele dieser Compiler können keinen Assembler-Code erstellen, sodass Sie den Assembler-Code nicht in eine Datei schreiben können.

Übrigens: Es gibt sogar Compiler (nicht für C/C++, sondern für andere Programmiersprachen), die direkt eine .EXE-Datei erstellen, sodass kein Linker erforderlich ist.

9
Martin Rosenau

Wenn der Compiler High-Level-Code in die Assembler-Sprache konvertiert, sieht das ungefähr so ​​aus:

  • MOV AX, [A]; # Bewegen Sie A, um Axe zu registrieren 
  • ADD AXE, [B]; # B zu A hinzufügen 
  • IMUL AX; # Square (A + B) 
  • MOV [C], AX;

Ein Assembler konvertiert diese Montageanweisungen in Maschinencode.

Montageanleitung hat typische Form wie: Opcode-Operand [Operand]

Wenn Sie das Handbuch des Mikroprozessors lesen, erfahren Sie, wie jeder Befehl in eine Binärform wie 1001000 konvertiert werden kann. Einige Bits sind für Opcode und andere für Operanden.

http://www.mathemainzel.info/files/x86asmref.html

5
rsmagdum

Die Assemblersprache wird von einem Dienstprogramm, das als Assembler bezeichnet wird, in ausführbaren Maschinencode konvertiert. Der Konvertierungsprozess wird als Assembly oder Zusammenstellen des Codes bezeichnet.

Lesen Sie mehr hier

Prost !!

2
Sachin Thapa

Assembler-Code hat einen ähnlichen Prozess für die Konvertierung in Objekt-/Maschinencode, da er über einen sogenannten Assembler ausgeführt wird (analog zu einem Compiler in Ihrem Beispiel).

0
David Frye