DE3921628A1 - Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins - Google Patents

Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins

Info

Publication number
DE3921628A1
DE3921628A1 DE3921628A DE3921628A DE3921628A1 DE 3921628 A1 DE3921628 A1 DE 3921628A1 DE 3921628 A DE3921628 A DE 3921628A DE 3921628 A DE3921628 A DE 3921628A DE 3921628 A1 DE3921628 A1 DE 3921628A1
Authority
DE
Germany
Prior art keywords
assembler
file
disassembler
machine
tabd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE3921628A
Other languages
English (en)
Inventor
Peter Dipl Ing Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE3921628A priority Critical patent/DE3921628A1/de
Publication of DE3921628A1 publication Critical patent/DE3921628A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Devices For Executing Special Programs (AREA)

Description

Die Erfindung betrifft ein Verfahren zur Erzeugung von Assem­ blern und/oder Disassemblern für die Beschreibung des Maschi­ nenbefehlssatzes eines Mikroprozessorbausteins gemäß dem Ober­ begriff des Patentanspruchs 1.
Zur Funktionsprüfung eines digitalen Bausteins werden Dateien mit Prüfmustern erzeugt, die die Reaktion des Bausteins auf vorgegebene Eingangszustände wiedergeben. Dabei wird der im Prüfmuster angegebene Ausgangswert mit dem tatsächlichen Aus­ gangswert des Prüflings verglichen.
Bei einem Mikroprozessorbaustein bedeutet dies, daß für jeden Maschinenbefehl zu jedem Takt die Zustände der Eingabepins und der zugehörigen Ausgabepins anzugeben sind. Da das Aufstellen derartiger Prüfmuster sehr aufwendig ist, bedient man sich zur effizienteren Erstellung von Testmustern eines Testautomaten, unter dessen Kontrolle ein Maschinenprogramm in einem als Mu­ sterbaustein verwendeten Mikroprozessor abläuft. In jedem Takt werden die Ein- und Ausgabepins abgetastet und gespeichert. Das auf diese Art entstandene Prüfmuster dient als Grundlage für das Testen der Mikroprozessoren.
Für die Beschreibung der Maschinenbefehle des zu testenden Mi­ kroprozessorbausteins ist der Einsatz eines Assemblers von Vor­ teil, da eine Codierung von Hand zeitaufwendig und fehlerbehaf­ tet ist. Liegen Testmuster bereits vor, so kann durch einen Disassembler die Suche nach einem eventuell auftretenden Fehler dadurch unterstützt werden, daß der aus der Prüfmusterdatei ausgelesene Maschinencode in einen symbolischen Befehl mit mne­ motechnischen Abkürzungen umgewandelt wird.
Die Umsetzung der symbolischen Befehle in die Maschinencodes und umgekehrt wird durch Verwendung einer Eingabedatei er­ reicht, in der anhand der Codierung in einer formalen Sprache ein Mikroprozessorbaustein ausreichend beschreibbar ist.
Da insbesondere bei neu auf dem Markt erschienenen Mikroprozes­ soren die zugehörigen Assembler und Disassembler erst relativ spät zur Verfügung stehen und außerdem die Notwendigkeit eines darauf zugeschnittenen Entwicklungssystems besteht, ist es Auf­ gabe der vorliegenden Erfindung, einen Assembler bzw. Disas­ sembler zur Beschreibung eines beliebigen Mikroprozessorbau­ steins für Testzwecke zu entwickeln.
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Pa­ tentanspruchs 1 gelöst.
Eine vorteilhafte Weiterbildung der Erfindung ist dem Unteran­ spruch zu entnehmen. Die komplette Angabe sämtlicher mnemotech­ nischer Ausdrücke kann für komplexe Mikroprozessoren umfang­ reich sein. Daher werden die Teile unterschiedlicher Befehle immer gleich codiert, die in diesen Befehlen gemeinsam vorkom­ men. Dazu werden Untertabellen aus den wiederholt anzutreffen­ den Teilcodierungen gebildet. Somit lassen sich auch Mikropro­ zessoren mit einem umfangreichen Befehlssatz mit relativ gerin­ gem Aufwand gut beschreiben.
Einzelheiten der Erfindung werden anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Im einzel­ nen zeigen:
Fig. 1 ein Ablaufdiagramm zur Erzeugung eines Assemblers bzw. Disassemblers und
Fig. 2 die Zuordnung mnemotechnischer Abkürzungen zu den Ma­ schinencodes in Form von Tabellen.
Das in Fig. 1 dargestellte Ablaufdiagramm sieht eine Eingabeda­ tei INDAT vor, in der einer formalen Programmiersprache ent­ sprechende Sprachmittel zur Beschreibung eines Mikroprozessor­ bausteins zur Verfügung gestellt werden. Diese Sprachmittel be­ stehen aus endlichen Folgen von Zahlen, Namen, Binärzeichenket­ ten oder Sonderzeichen. Durch einen Programmgenerator PG wird mit Hilfe der Eingabedatei INDAT eine Tabellendatei TABD er­ zeugt, in der in Form von Tabellen die Zuweisung der mnemotech­ nischen Abkürzungen symbolischer Befehle zu den Maschinencodes des Prozessors erfolgt.
Jeder Eintrag einer Tabelle besteht aus einem ersten Feld mit dem symbolischen Namen des Befehls und aus einem zweiten Feld mit dem zugehörigen Binärmuster, wobei die einzelnen Tabellen­ einträge durch eine bestimmte Anweisung in der Programmgenera­ torsprache angegeben sind. In der Datei TABD sind somit alle möglichen Befehle mit den vorkommenden Adressierungsarten und ihre zugehörigen Binärwerte enthalten.
Der Programmgenerator PG bedient sich jeweils eines optionalen Deklarationsteils, gefolgt von einem wenigstens eine Tabelle aufweisenden Tabellenteil. Im Deklarationsteil werden verschie­ dene Parameter für den Assembler bzw. Disassembler festgelegt, so z.B. die Länge der Adressen, die der Assembler im Ausgabeli­ sting zu erzeugen hat, der zugrundegelegte Zeichensatz oder die lokalen und globalen Variablen. Dem Deklarationsteil folgen die Beschreibungen der verschiedenen Tabellen, die in beliebiger Reihenfolge angegeben sein können.
Neben der Tabellendatei TABD wird vom Programmgenerator PG auch eine Listingdatei LISD gebildet, in der ein Übersetzungsproto­ koll der Eingabedatei und Fehlermeldungen gespeichert werden. Entdeckt der Programmgenerator PG einen Fehler in der Eingabe­ datei INDAT, so wird der Übersetzungslauf abgebrochen und eine Meldung mit Angabe einer die Art des Fehlers kennzeichnenden Fehlernummer ausgegeben.
In einer weiteren Datei QA bzw. QD wird das Quellprogramm des Assemblers bzw. Disassemblers abgelegt, das jeweils mit Hilfe eines entsprechenden Kompilierers COM in ein Objektmodul MOD übersetzt wird. Nach dem Verknüpfen des Objektmoduls MOD mit einer Modulbibliothek BIB über einen Binder B entsteht ein ab­ lauffähiger Assembler ASS bzw. Disassembler DASS, mit dem die Mnemonics in die Maschinencodes bzw. umgekehrt aus der Tabel­ lendatei TABD umgesetzt werden. Dies erfolgt auf Textebene, d.h. es wird ein Assembler- bzw. Disassemblerlisting LIST mit den entsprechenden Verschlüsselungen in dem gewählten Zahlensy­ stem bzw. mit den Mnemonics ausgegeben.
Das Assemblerlisting enthält die Angabe der Zeilennummer im Quellprogramm, gefolgt von der Symbolnummer, der Adresse in beispielsweise sedezimaler Schreibweise, sowie dem zur Quell­ zeile gehörigen Maschinencode, ebenfalls in sedezimaler Be­ schreibung. Das Disassemblerlisting erscheint mit Aufzeichnung der sedezimalen Adresse des nächstfolgenden Befehls, des zum Mnemonic gehörenden Maschinencodes in sedezimaler Darstellung, sowie des Assemblerbefehls in seiner symbolischen Notation.
Fig. 2 zeigt an einem Additionsbefehl ADD und einem Subtrakti­ onsbefehl SUB die Zuweisung der Mnemonics zu den Maschinenco­ des. Dabei soll der Inhalt eines aus einer Menge von Registern A, B, C, D, E, H und L ausgewählten Registers addiert oder sub­ traheirt werden. Denkbar wäre die Verwendung nur einer Tabelle, die alle möglichen Befehle und ihre entsprechend zugeordneten Maschinencodes enthielte. Da dies zu einem mühsamen Suchen des gewünschten Eintrags aus einer Vielzahl von Einträgen führen würde, nützt man den vorteilhaften Umstand, daß Teile der Mne­ monics unterschiedlichen Befehlen gemeinsam sind.
Daher sind für die Register A...L immer gleiche Teilcodierungen vorgesehen, die in einer Untertabelle REG für Register abgelegt werden. In einer Haupttabelle MAIN ist neben dem mnemotechni­ schen Befehlsnamen ADD bzw. SUB und dem Binärmuster jeweils ein Tabellenverweis durch Angabe des Untertabellennamens REG ange­ geben. Die Zuweisung erfolgt dabei immer durch die ASSIGN-An­ weisung.
Derartige Verweise können beliebig verschachtelt werden, d.h. die referierte Untertabelle darf wiederum Verweise auf andere Untertabellen enthalten.

Claims (2)

1. Verfahren zur Erzeugung von Assemblern und/oder Disassemb­ lern für die Beschreibung des Maschinenbefehlssatzes des Mikro­ prozessorbausteins unter Verwendung einer Eingabedatei mit einer Codierungsvorschrift zur Umsetzung symbolischer Befehle mit mnemotechnischen Abkürzungen in Maschinencodes und umge­ kehrt, dadurch gekennzeichnet,
  • - daß mit Hilfe der Eingabedatei (TABD) von einem Programmgene­ rator (PG) mehrere Ausgabedateien erzeugt werden, von denen eine Datei (LISD) ein Übersetzungsprotokoll der Eingabedatei und Fehlermeldungen enthält, eine andere Datei (TABD) Tabellen aufweist, in denen jeweils einem symbolischen Befehl (z.B. ADD) ein Maschinencode zugewiesen wird, während in einer weiteren Datei (QA/QD) das Quellprogramm für den Assembler oder Disas­ sembler abgelegt wird,
  • - daß das jeweilige Quellprogramm von einem Kompilierer (COM) in eine Objektmodul (OM) übersetzt wird,
  • - daß das Objektmodul (OM) mit einer Modulbibliothek (BIB) zu einem ablauffähigen Assembler bzw. Disassembler (ASS bzw. DASS) verknüpft wird, und
  • - daß von dem ablauffähigen Assembler bzw. Disassembler (ASS bzw. DASS) die Maschinencodes bzw. mnemotechnischen Ausdrücke aus der Tabellendatei (TABD) gelesen werden, bevor sie in Form eines Übersetzungsprotokolls (LIST) ausgegeben werden.
2. Verfahren nach Anspruch 1, dadurch ge­ kennzeichnet,
  • - daß übereinstimmenden Teilen der in unterschiedlichen Befeh­ len enthaltenen mnemotechnischen Abkürzungen jeweils gleiche Maschinencodes zugeordnet werden, die in Untertabellen (z.B. REG) hinterlegt werden, und
  • - daß in einer Haupttabelle (MAIN) Verweise auf die Untertabel­ len eingetragen werden.
DE3921628A 1989-06-30 1989-06-30 Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins Ceased DE3921628A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE3921628A DE3921628A1 (de) 1989-06-30 1989-06-30 Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE3921628A DE3921628A1 (de) 1989-06-30 1989-06-30 Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins

Publications (1)

Publication Number Publication Date
DE3921628A1 true DE3921628A1 (de) 1991-01-10

Family

ID=6384073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3921628A Ceased DE3921628A1 (de) 1989-06-30 1989-06-30 Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins

Country Status (1)

Country Link
DE (1) DE3921628A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0525243A1 (de) * 1991-07-31 1993-02-03 Siemens Aktiengesellschaft Verfahren zur Visualisierung von protokollierten Informationen in einem Kommunikationssystem
WO1996030834A1 (en) * 1995-03-28 1996-10-03 Sun Microsystems, Inc. System and method for generating pseudo-random instructions for design verification
CN103106096A (zh) * 2012-11-27 2013-05-15 武汉大学 一种针对嵌入式微处理器的反汇编方法
US8464235B2 (en) 1999-11-30 2013-06-11 Stmicroelectronics Ltd. Adaptive production of assembler

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Löbel Guido, Schmid Hans, Müller Peter, Lexikon der Datenverarbeitung, 4. Siemensinterne Auflage, Verlag Moderne Industrie, München, 1978, S. 51-53 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0525243A1 (de) * 1991-07-31 1993-02-03 Siemens Aktiengesellschaft Verfahren zur Visualisierung von protokollierten Informationen in einem Kommunikationssystem
US5450569A (en) * 1991-07-31 1995-09-12 Siemens Aktiengesellschaft Method for the visualization of logged information in a communication system
WO1996030834A1 (en) * 1995-03-28 1996-10-03 Sun Microsystems, Inc. System and method for generating pseudo-random instructions for design verification
US8464235B2 (en) 1999-11-30 2013-06-11 Stmicroelectronics Ltd. Adaptive production of assembler
CN103106096A (zh) * 2012-11-27 2013-05-15 武汉大学 一种针对嵌入式微处理器的反汇编方法

Similar Documents

Publication Publication Date Title
DE60308505T2 (de) Verfahren und system zur automatischen prüfung von software
DE2504627C2 (de) Autonomes Datenverarbeitungsgerät
DE69226106T2 (de) Datenbankherstellungsverfahren und Gerät
DE2228881A1 (de) Automatisches diagnostisches Unter suchungsgerat
DE3812607A1 (de) Verfahren und schaltungsanordnung zur bestimmung der resourcenkonfiguration von in einem schlitz eines computers aufgenommenen schaltungen
DE102005042129A1 (de) Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
EP1038221B1 (de) Verfahren zur überprüfung der pfadüberdeckung bei software-tests
DE10256990A1 (de) Programmcodegenerator und Programm
DE3921628A1 (de) Verfahren zur erzeugung von assemblern und/oder disassemblern fuer die beschreibung des maschinenbefehlssatzes eines mikroprozessorbausteins
DE3503456A1 (de) Vorrichtung zum erstellen und editieren eines schriftsatzes
EP1005216A2 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
WO1998032084A1 (de) Verfahren zur initialisierung einer simulation des verhaltens einer technischen anlage und simulationssystem für eine technische anlage
DE69025885T2 (de) Vorrichtung und Verfahren zur Erzeugung der Ablauffolge eines industriellen Verfahrens
DE102004040976A1 (de) Rechnergestützte Erzeugung und Änderungsmanagement für Bedienoberflächen
EP1505399B1 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
DE10056825C2 (de) Verfahren, Vorrichtung und Computerprogramm zum Erzeugen eines Zufallstestcodes
DE69322800T2 (de) Verfahren zur Leistungsverbesserung in einem automatischen Testsystem
DE3217024A1 (de) Wortgenerator
DE69333420T2 (de) Verfahren und anordnung zum testen von diensten in einem telekommunikationssystem
DE10055679A1 (de) Verfahren, Computersystem und Computerprogramm-Produkte zur modellbasierten Generierung von Testszenarien
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE4426739C2 (de) Testverfahren sowie Einrichtung zum Erzeugen von Test-Fällen, Testeinrichtung und Programm-Modul dafür
EP0560342B1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms
DE102004039884A1 (de) Verfahren und System zur Beschreibung und Ausführung automatischer Tests
WO1995002863A1 (de) Verfahren zum test eines objektorientierten programms

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection