AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler und Disassambler simulieren

Ein Thema von Ginko · begonnen am 7. Nov 2009 · letzter Beitrag vom 8. Nov 2009
Antwort Antwort
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

Assembler und Disassambler simulieren

  Alt 7. Nov 2009, 17:56
Hallo kennt jemand eine Seite wo die Vorgänge beschrieben werden oder weiß jemand wie es normalerweise gemacht wird.
Ich wollte so etwas in Delphi umsetzen...
Also um genauer zu werden, wie der Assembler aus dem String den man eingibt zB "mvi a,55h" einen Opcode erstellt.
Wird da zuerst die Hexzahl entfernt und dann mit einer riesen case Anweisung geschaut welcher Opcode zu "mvi a" gehört (in dem Fall wäre es ja "E3")?
Und beim disassemblieren müsste ja irgendwie erkannt werden ob es sich um einen Befehl oder den zugehörigen Operanden handelt, der gerade gelesen wird. Also das "E3" der Befehl "mvi a" ist und hintendran der Operand folgt.
Das wäre ja nur möglich wenn man vorne anfängt und Schritt für Schritt durchgeht, da die Befehle ja immer eine bestimmte größe haben und man dann wüsste, dass auf "E3" ein Operand in dem Fall "55h" folgt und dann der nächste Befehl kommem muss. Oder täusche ich mich da....
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Assembler und Disassambler simulieren

  Alt 7. Nov 2009, 19:25
Hi,

ich würde eine Datenstruktur aufbauen, in der alle Befehle beschrieben sind. So in der Art: besteht aus x Bytes, ist absolute/relative Adresse, ist Flag ... Und dann brauchst Du einen halbwegs intelligenten Parser.

Beim Disassemblieren musst Du die Startadresse kennen, da schon ein Byte Versatz totalen Müll produziert. Und Du musst natürlich Sprünge auswerten, weil unter Umständen irgendwelche Bytes im Speicher stehen können, an denen der Prozessor nie vorbeikommt. Wenn Du die übersetzt, hast Du wieder Müll.

Viele Grüße,

Lutz
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Assembler und Disassambler simulieren

  Alt 7. Nov 2009, 19:34
Danke erstmal, so in der Art habe ich mir das auch gedacht.
Meinst du mit dem Parser einen Programmteil, welcher die Eingabe "mvi a" zB in einen Zahlencode umwandelt und mit diesem in in der Datenstruktur nach dem entsprechenden Befehl sucht?
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: Assembler und Disassambler simulieren

  Alt 8. Nov 2009, 09:26
Hi,

Zahlencode nicht unbedingt. Aber ein Parser, der die Befehle so weit versteht, dass er in der anfangs erwähnten Datenstruktur die richtigen Befehle heraussucht.

Viele Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:21 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