AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ASM zu binärcode bzw funktionierender exe?

Ein Thema von Memnarch · begonnen am 28. Jul 2011 · letzter Beitrag vom 29. Jul 2011
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 16:40
Tag allerseits.
Da mich das gebiet Assembler total interressiert(sowie Compilerbau ), würde ich gerne wissen, wie man von Assembler code zu einem ausführbaren programm kommt.

Wenn ich es richtig verstanden habe ist es doch so verkettet:

Hochsprache -> Assembler -> Binärcode (bitte dringenst korrigieren wenn ich falsch liege)


MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#2

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 16:47
Assembler = Binärcode

Assembler ist nur eine Textanzeige des Binärcodes.
Das kannst du vergleichen mit der Darstellung von Zahlen, diese lassen sich im dezimalen System besser lesen als im binären.

0011 = 3

Es gibt nun noch spezielle Editoren, welche ASM-Code als "Hochsprache" behandeln und Sprungmarken mit Text darstellen. Diese Textmarken werden dann in Adressen beim kompilieren umgesetzt. Ohne diese Editoren müsste man die Adresse ausrechnen und eingeben.

Wenn du mal CPU "anfassen" möchtest, dann empfehle ich dir einen Mikrocontroller zu nehmen und diesen zu programmieren.

Beliebt sind die Atmel 8Bit Risc Prozessoren - billig und leicht zu beschalten.
Das schöne da dran - man muss alles per Hand machen, da es kein OS gibt.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 16:51
Die einfache Antwort wäre
Compilieren,Linken,fertig.
Aber das willst Du wahrscheinlich nicht lesen. Es gibt "Sprachpakete" bei denen es so gemacht wird, wie Du es skizziert hast:
Hochsprache -> (Makro)Assembler -> Binärcode -> Ausführbares Programm

Was sind denn Deine konkreten Anliegen?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#4

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 16:59
Ich glaube wir haben uns etwas verpasst^^.

mir geht es darum:

wen ich z.B den ausgeschriebenen befehl "mov" habe, wie wird der "übersetzt". Gibt es dafür eine tabelle, wird der wert einfach aus den Asciizeichen berechnet? mit "mov" im Klartext kann eine CPU ja schlecht was anfangen o.O.

Und dan ebend noch: wie ist das mit einer Executable unter windows.?

EDIT: rote box war wohl wieder auf urlaub....

EDIT2: Also: ich möchte ein programm schreiben dass aus einer art selbst definierter hochsprache(hoch in anführungszeichen...eher was sehr simples proceduales) den noch für menschenlesbaren ASM code generiert. Ok da bin ich noch im stande mir selbst zu helfen. Wenn ich aber bei dem lesbaren ASM angekommen wäre, wie geht es dan weiter? Was muss ich tun, damit ich daraus dan ein ausführbares programm machen kann?

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden

Geändert von Memnarch (28. Jul 2011 um 17:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 17:06
Ich glaube ihr verwirrt ihn nur mehr...

Also man kann Assembler quasi 1:1 in Binären Code (ich nenne es mal so) umwandeln.

z.B. entspricht der Befehl "hlt" dem Byte (Opcode) 0xF4

mov eax, 20
inc eax
hlt



B8 14 00 00 00
40
F4

Liste mit Befehlen/Opcodes: http://ref.x86asm.net/

Infos zum Aufbau von Exe-Dateien findest du bei Wikipedia:
http://de.wikipedia.org/wiki/Portable_Executable
und natürlich bei Microsoft selbst:
http://msdn.microsoft.com/en-us/wind...dware/gg463119
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (28. Jul 2011 um 17:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 17:14
Meinst Du TASM oder MSAM?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 17:33
@Neutral General: ah das ist doch schonmal was. Aber "quasi" bedeutet ja das ich trotzdem irgendwo ne referenz haben muss(also welcher opcode für welchen befehl ). Aber damit komm ich schonmal weiter, danke.


@Bummi: o.O?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 17:41
Das Intel Architectures Software Developer's Manual ist das was du suchst, wenn du Bytecode selbst erstellen willst (ein Tutorial ist das allerdings nicht).
Kapitel 2 sollte imho die Zusammensetzung der Instruktionen beschreiben.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (28. Jul 2011 um 17:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 18:22
@Bummi
ich denke das ist in diesem zusammenhang egal

Gruß
K-H

Edith:
vielleicht noch als Zusatz, der "Assemblercode" für ein LINUX-Programm ist der gleichen wie bei windows, da der Processor der gleiche ist. Nur die systemspezifischen Befehle, unterscheiden sich. (Linker)
Also alles was Du für das Laden des Programms und für die Speicheradressierung brauchst.
(OK ein bischen API und ....)
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (28. Jul 2011 um 18:26 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 28. Jul 2011, 19:26
@Neutral General: ah das ist doch schonmal was. Aber "quasi" bedeutet ja das ich trotzdem irgendwo ne referenz haben muss(also welcher opcode für welchen befehl ). Aber damit komm ich schonmal weiter, danke.
Es gibt auf der Seite verschiedene Referenzen, ich habe für meinen Brainfuck-JIT-Compiler diese verwendet: http://ref.x86asm.net/coder32.html
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 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