@mastersthesis{Fischer2020, type = {Bachelor Thesis}, author = {Fischer, Felix}, title = {Automatisierte Befehl-Ressourcen-Trennung einer Von-Neumann-Maschine : am Beispiel der Sharp-LR35902-CPU}, institution = {Angewandte Computer- und Bio­wissen­schaften}, year = {2020}, abstract = {Ein Compiler oder Assembler wandelt Quellcode in ein ausf{\"u}hrbares Programm um. Das resultierende Binary besteht aus Befehlen und Ressourcen, wie Bilder, Sounds oder anderen Informationen. Ohne den Ausf{\"u}hrungskontext kann jedoch nicht im Vorhinein mit absoluter Sicherheit eine Angabe gemacht werden, bei welchen Bytes es sich um Anweisungen und bei welchen Abschnitten im Programm es sich um Ressourcen handelt. Bei einer Untersuchung oder einem Dekompilierungsvorgang der bin{\"a}ren Datei gestaltet sich diese bzw. dieser ohne vorliegenden Quellcode sehr schwierig. Als Beispiel f{\"u}r eine Von-Neumann-Architektur wurde in dieser Arbeit der Game Boy mit seiner Sharp-LR35902-CPU gew{\"a}hlt. Mit Banking verwendet die Architektur sowohl historische Technologien, {\"a}hnelt aber dennoch sehr den derzeit h{\"a}ufig genutzten x86-64-CPUs von Intel oder AMD. Außerdem bieten die kleinen Programme von maximal zwei Mebibyte die M{\"o}glichkeit, auch in ineffiziente Ans{\"a}tze auszuprobieren. In dieser Arbeit wurde anhand der folgenden sieben L{\"o}sungsans{\"a}tze erl{\"a}utert, wie man eine Befehl-Ressourcen-Trennung erzielen kann. � Manueller Ansatz (siehe Kapitel 3.1) � Metadaten-Ansatz (siehe Kapitel 3.2) � Alles-Befehle-Ansatz (siehe Kapitel 3.3) � Statistischer Ansatz (siehe Kapitel 3.4) � Emulationsansatz (siehe Kapitel 3.5) � Programmflussansatz (siehe Kapitel 3.6) � Brute-Force-Ansatz (siehe Kapitel 3.7) Insbesondere wurden drei automatisierte bzw. teilautomatisierte Ans{\"a}tze implementiert und anschließend mit einer manuellen Trennung als Referenzwert verglichen. Dabei erzielte, bei dem verwendeten Kontrollprogramm "StefaN", der Programmflussansatz ein gutes Ergebnis. Das mittels Emulationsansatz gewonnene Ergebnis schloss etwas schlechter ab. Der Brute-Force-Ansatz scheiterte an exponentiellen Wachstum und erzielte damit das schlechteste Ergebnis. Eine korrekte Trennung konnte nur mit dem manuellen Ansatz erreicht werden. In dieser Arbeit konnte keine vollautomatisierte L{\"o}sung f{\"u}r das Problem gefunden werden. Grunds{\"a}tzlich kann festgehalten werden, dass eine Befehl-Ressourcen-Trennung einer ausf{\"u}hrbaren Bin{\"a}rdatei auch in Zukunft eine Herausforderung darstellt.}, subject = {Programmierung}, language = {de} }