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 mikroprozessorbausteinsInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318307—Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31903—Tester hardware, i.e. output processing circuits tester configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring 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.
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)
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 |
-
1989
- 1989-06-30 DE DE3921628A patent/DE3921628A1/de not_active Ceased
Non-Patent Citations (1)
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)
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 |