DE3332832A1 - METHOD AND ARRANGEMENT FOR INVERSE ASSEMBLING - Google Patents

METHOD AND ARRANGEMENT FOR INVERSE ASSEMBLING

Info

Publication number
DE3332832A1
DE3332832A1 DE19833332832 DE3332832A DE3332832A1 DE 3332832 A1 DE3332832 A1 DE 3332832A1 DE 19833332832 DE19833332832 DE 19833332832 DE 3332832 A DE3332832 A DE 3332832A DE 3332832 A1 DE3332832 A1 DE 3332832A1
Authority
DE
Germany
Prior art keywords
information
memory
code
stored
binary code
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.)
Withdrawn
Application number
DE19833332832
Other languages
German (de)
Inventor
Gerd H. 97034 Lake Oswego Oreg. Hoeren
Mark E. 97123 Hillsboro Oreg. Pettet
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.)
Tektronix Inc
Original Assignee
Tektronix Inc
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 Tektronix Inc filed Critical Tektronix Inc
Publication of DE3332832A1 publication Critical patent/DE3332832A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Description

STRASSB 8ε STOFFRBGENSTRASSB 8ε FABRIC COLORS

Patentanwälte · European Patent AttorneysPatent Attorneys · European Patent Attorneys

Dlpl.-Ing. Joachim Strasee, Münohen · Dipl.-Phye. Dr. Hans-Herbert Stoffregen, Hanau Zweibrackenstraße IB · D-8OOO München 2 (Gegenüber dem Patentamt) · Telefon (08Θ) 22 23 9Θ · Telex B 22 OFM Dlpl.-Ing. Joachim Strasee, Münohen · Dipl.-Phye. Dr. Hans-Herbert Stoffregen, Hanau Zweibrackenstraße IB · D-8OOO Munich 2 (opposite the patent office) · Telephone (08Θ) 22 23 9Θ · Telex B 22 OFM

Tektronix, Inc. München, 09- September 1983Tektronix, Inc. Munich, September 9th, 1983

Beaverton, Oregon 97077 (V.St.A.) U 377Beaverton, Oregon 97077 (V.St.A.) U 377

Verfahren und Anordnung zurProcedure and arrangement for

inversen Assemblierunginverse assembly

Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur inversen Assemblierung, mit denen ein Code, der einemThe invention relates to a method and a device for inverse assembly, with which a code, a

^O gespeicherten Programm zugeordnet ist, in einen entsprechenden Satz mnemonischer Angaben für die Interpretation durch einen Benutzer umgewandelt wird. Mit einem inversen Assembler wird der ausführbare Ausgangscode eines Assemblers eines Datenverarbeitungssystems in einen entsprechenden Satz mnemonischer Angaben einer Assemblersprache für das Austesten der Software umgewandelt, die dem ausführbaren Code zugeordnet ist.^ O stored program is assigned to a corresponding Set of mnemonic information is converted for interpretation by a user. With an inverse assembler the executable output code of an assembler of a data processing system in a corresponding set of mnemonic information an assembly language for debugging the software associated with the executable code.

Logikanalysatoren führen typischerweise die Funktion eines inversen Assemblers aus. Ein inverser Assembler wird dazu benutzt, einen von einem Assembler eines Datenverarbeitungssystems erzeugten Satz von Angaben eines ausführbaren Code in einen entsprechenden Satz von Angaben einer Assemblersprache zu übersetzen, damit das Softwarepaket, das den ausführbaren Code darstellt, ausgetestet werden kann. Beispielsweise wird, wie in Fig. la dargestellt, während der Entwicklung der Software der ausführbare Code entweder von einem Assembler oder einem Compiler erzeugt. Der Assembler gibt einen Satz von Befehlen in der Assemblersprache von einem Benutzer ein und erzeugt hieraus denLogic analyzers typically perform the function of an inverse Assemblers. An inverse assembler is used to generate one generated by an assembler of a data processing system To translate a set of specifications of an executable code into a corresponding set of specifications of an assembly language, so that the software package that represents the executable code can be tested. For example, as in Fig. La shown, during the development of the software, the executable code either from an assembler or a compiler generated. The assembler inputs a set of instructions in the assembly language from a user and generates the from this

- 5 -35- 5 -35

Ol ausführbaren Code. Der ausführbare Code enthält eine Vielzahl binärer Codeangaben, die den Befehlen der Assemblersprache entsprechen. Benutzt wird der ausführbare Code von einem Zielsystem (das z.B. ein Mikroprozessor sein kann). In Fig. Ib ist eine Softwareanalysiermethode gezeigt, die von einem inversen Assembler für die logische Analyse ausgeführt wird, wobei der vom Zielsystem benutzte ausführbare Code in einen entsprechenden Satz mnemonischer Angaben einer Assemblersprache umgewandelt wird. Der entsprechende Satz mnemonischer Angaben der Assembler-IQ spräche wird für das Austesten' des Satzes von Assemblersprachebefehlen verwendet. Wenn das Zielsystem, das in Fig. la gezeigt ist, die Assemblersprachebefehle gemäß dem entsprechenden Satz mnemonischer Angaben der Assemblersprache richtig ausgeführt hat (indem die vom Benutzer gewünschten Ergebnisse entwickelt werden), dann war der Satz von Assemblersprachebefehlen (oder einer höheren Sprache, die den Assemblersprachebefehlen entspricht), richtig geschrieben.Ol executable code. The executable code contains a large number of binary code indications that correspond to the instructions of the assembly language correspond. The executable code is used by a target system (which can be a microprocessor, for example). In Fig. Ib is has shown a software analysis methodology performed by an inverse assembler for logical analysis, the The executable code used by the target system is converted into a corresponding set of mnemonic information in an assembly language will. The corresponding set of mnemonic specifications of the assembler IQ languages is used for debugging the set of assembly language commands used. If the target system shown in Fig. La, the assembly language instructions according to the corresponding sentence correctly executed mnemonic specifications of the assembly language (by developing the results desired by the user then was the set of assembly language instructions (or a higher level language corresponding to the assembly language instructions), written correctly.

Wie oben erwähnt, wandelt der Assembler den Satz der vom Benutzer eingegebenen Assemblersprachebefehle um und erzeugt den ausführbaren Code, der eine Vielzahl binärer Codeangaben enthält. Das Zielsystem ist in der Regel ein Mikroprozessor, jedoch ist das Zielsystem nicht hierauf beschränkt. Der Mikroprozessor führt die vom Assembler erzeugten binären Codeangaben aus. Die Ausführung dieser binären Codeangaben kann durch einen Logikanalysator überwacht werden. Um den Code auszutesten, ist es notwendig, daß die binären Codeangaben (die vom Mikroprozessor ausgeführt werden) in den ursprünglichen Satz von Assemblersprachebefehlen zurück verwandelt werden, d.h. invers in den entsprechenden Satz mnemonischer Angaben der Assemblersprache umgewandelt werden, damit sie vom Benutzer interpretiert werden können.As noted above, the assembler converts and generates the set of user-entered assembly language commands the executable code, which contains a large number of binary code indications. The target system is usually a microprocessor, however, the target system is not limited to this. The microprocessor carries the binary code information generated by the assembler the end. The execution of these binary code information can be monitored by a logic analyzer. To test the code, it is necessary that the binary code information (which is executed by the microprocessor) in the original sentence can be converted back by assembly language commands, i.e. inversely into the corresponding set of mnemonic specifications of the assembly language converted so that they can be interpreted by the user.

- 6- 6

Ol Um die Vielzahl von binären Codeangaben in die entsprechenden mnemonischen Angaben der Assemblersprache invers zu assemblieren, ist es erforderlich, Informationen, die für den Aufbau einer Tabelle notwendig sind, einem Speicher zuzuführen und sie in diesem zu speichern. Die Tabelle enthält zwei Informationsspalten: Die erste Spalte besteht aus einer Liste von binären Codeangaben, die alle der möglichen Codeangaben aufweist, die von dem Mikroprozessor erzeugt werden können. Die zweite Spalte weist eine entsprechende Liste von mnemonischen Angaben in Assemblersprache (Befehlen) auf, die den Codeangaben zugeordnet sind.Ol To assemble the multitude of binary code specifications inversely into the corresponding mnemonic specifications of the assembly language, it is necessary to supply information that is necessary for the construction of a table to a memory and to store it in save this. The table contains two columns of information: The first column consists of a list of binary Code specification comprising all of the possible code specifications that can be generated by the microprocessor. The second column has a corresponding list of mnemonic details in assembly language (commands) which are assigned to the code details are.

Für jede binäre Codeangabe, die in die Vielzahl von binären Codeangaben einbezogen ist, die vom Mikroprozessor erzeugt werden, bestand der Vorgang der inversen Assemblierung aus folgenden Schritten: Ablage der binären Codeangabe als Adresse in der ersten Spalte der im Speicher enthaltenen Tabelle und Kennzeichnung der entsprechenden mnemonischen Angabe in Assemblersprache in der zweiten Spalte. Durch die Benutzung dieser Tabelle wird daher die Vielzahl der binären Codeangaben, die vom Mikroprozessor erzeugt werden, in den entsprechenden Satz mnemonischer Angaben in Assemblersprache invers assembliert.For each binary code item included in the multitude of binary code items generated by the microprocessor, the inverse assembly process consisted of the following steps: Storage of the binary code as an address in the first column of the table contained in the memory and identification of the corresponding mnemonic information in assembly language in the second column. By using this table, therefore, the large number of binary code information, which from the Microprocessor generated, assembled inversely in the corresponding set of mnemonic information in assembly language.

Bei den bisher üblichen inversen Assemblern war die Aufgabe des Aufbaus der Tabelle ziemlich langsam und mühevoll, wenn nicht gar unmöglich. Für die meisten acht Bit Mikroprozessoren wiesWith the inverse assemblers that have been used up to now, the task of building the table has been quite slow and tedious, if not impossible at all. Pointed to most eight bit microprocessors

die erste Spalte der Tabelle eine Liste von 2 (d.h. 256) Eingaben auf. Diese Anzahl an Eingaben ist vernünftig. Wenn jedoch ein sechzehn Bit Mikroprozessor verwendet wurde, dann wies die erste Spalte der Tabelle eine Liste von 2 (d.h. 65 536) Eingaben an binären Codeangaben auf. Ein Benutzer muß deshalb 65 536 binäre Codeangaben und die entsprechenden Befehle für den Aufbau der Tabelle eingeben. Wenn eine solchethe first column of the table contains a list of 2 (i.e. 256) entries. This number of entries is reasonable. if however a sixteen bit microprocessor was used then the first column of the table had a list of 2 (i.e. 65 536) Binary code entries. A user must therefore 65,536 binary code information and the corresponding commands for the structure of the table. If such

Ol Tabelle aufgebaut wird, dann wird für die Speicherung der Tabelle eine sehr große Speicherkapazität benötigt. Als Folge davon hat sich das Verfahren der inversen Assemblierung bei der Benutzung herkömmlicher inverser Assembler (insbesondere in Verbindung mit dem lö-Bit- Prozessor) als unpraktisch, wenn nicht gar unmöglich erwiesen.Ol table is then built up for storing the Table requires a very large amount of memory. As a result, the method of inverse assembly in the Use of conventional inverse assembler (especially in conjunction with the lo-bit processor) as impractical, if not proved impossible at all.

Als andere Möglichkeit war der herkömmliche Assembler mit einem Nur-Lese-Speicher ausgestattet, der mit Firmware kodiert war, die für das Austesten des Satzes von Assemblersprachebefehlen maßgebend war, die vom Mikroprozessor ausgeführt wurden. Mit dem Nur-Lese-Speicher war es jedoch nur möglich, die Assemblersprachebefehle, die nur von gewissen speziellen Arten von Mikroprozessoren ausgeführt wurden, zu zerlegen. Wenn andere Mikro-Prozessoren zur Ausführung dieser Befehle verwendet wurden, konnte die Firmware im ursprünglichen Nur-Lese-Speicher die Befehle nicht zergliedern (oder invers assemblieren).As another option, the conventional assembler was equipped with a read-only memory that was encoded with firmware, which governed the debugging of the set of assembly language instructions executed by the microprocessor. With However, the read-only memory was only able to handle assembly language instructions that were only used by certain special types of microprocessors were executed to disassemble. If other microprocessors were used to execute these instructions, the firmware could not parse (or inversely assemble) the commands in the original read-only memory.

Es war deshalb notwendig, den Nur-Lese-Speicher zu entfernen und ihn durch einen anderen Nur-Lese-Speicher zu ersetzen, in dem Firmware enthalten war, die die Assemblersprachebefehle genau zergliedern konnte. Die Notwendigkeit, den alten Nur-Lese-Speicher zu entfernen und ihn durch einen neuen zu ersetzen, wenn ein unterschiedlicher Mikroprozessor für die Durchführung des Satzes der Assemblersprachebefehle benutzt wurde, schränkte den Umfang der den herkömmlichen inversen Assemblern zugeordneten Benutzung erheblich ein«It was therefore necessary to remove the read-only memory and replace it with another read-only memory, in the firmware was included, which could parse the assembly language commands exactly. The need to use the old read-only memory remove and replace it with a new one if a different microprocessor is performing of the set of assembly language instructions limited the scope of those associated with conventional inverse assemblers Use considerably «

Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung zur inversen Assemblierung zu entwickeln, mit denen es unter Vermeidung der Nachteile herkömmlicher inverser Assembler möglich ist, die Informationen für den Aufbau derThe invention is based on the object of developing a method and a device for inverse assembly, with which, while avoiding the disadvantages of conventional inverse assembler, is able to use the information for the construction of the

Ol Tabelle unter wesentlicher Verminderung der Zahl der Eingaben der binären Codeangaben und der zugehörigen mnemonischen Angaben in Assemblersprache (Befehle) einzugeben, die für die Tabelle benötigt werden, die dem inversen Assemblierverfahren zugeordnet ist.Ol table with a substantial reduction in the number of entries the binary code information and the associated mnemonic information in assembly language (commands) to be entered for the table are required, which is assigned to the inverse assembly process.

Die Aufgabe wird erfindungsgemäß durch die im Anspruch 1 beschriebenen Maßnehmen gelöst. Der erfindungsgemäße inverse Assembler erlaubt die Eingabe aller möglichen binären Codeangaben, die vom Assembler erzeugt werden können, und aller entsprechender mnemonischer Angaben in Assemblersprache (Befehle), die den Codeangaben zugeordnet sind, während des Vorgangs des Aufbaus der Tabelle. Die binären Codeangaben und die mnemonischen Angaben in Assemblersprache werden in der Tabelle in Form eines Satzes von Entscheidungsbaumtabellen gespeichert, wobei die jedem Zweig des Entscheidungsbaums zugeordneten Elemente in den inversen Assembler der vorliegenden Erfindung in unmittelbarer Übereinstimmung mit dem Format einer Benutzerdokumentation eingegeben werden, die vom Hersteller des jeweiligen Mikroprozessors veröffentlicht wird, und wobei alle Zweige des Entscheidungsbaums in der durch den Entscheidungsbaum gegebenen Form miteinander verbunden sind. Weiterhin ist der inverse Assembler der vorliegenden Erfindung in der Lage, den ausführbaren Code in der Weise invers zu assemblieren, daß die darin enthaltenen Befehle und Dateninformationen voneinander unterschieden werden können. Die Befehle sind innerhalb des ausführbaren Codes durch erste Identifizierungsmittel gekennzeichnet. Die Dateninformationen sind innerhalb des ausführbaren Code durch zweite Identifizierungsmittel gekennzeichnet. Die Befehle und die Dateninformationen und die diesen entsprechenden ersten und zweiten Identifizierungsmittel, die als Teil des ausführbaren Code erfaßt werden, werden in einem Aufnahmespeicher eines Erfassungsgerätes (z.B. eines Logikanalysator) abgespeichert und vom inversen Assembler verarbeitet.
35
The object is achieved according to the invention by the measures described in claim 1. The inverse assembler according to the invention allows the input of all possible binary code information that can be generated by the assembler, and all corresponding mnemonic information in assembly language (commands) that are assigned to the code information during the process of building the table. The binary code and assembly language mnemonics are stored in the table in the form of a set of decision tree tables, the elements associated with each branch of the decision tree being entered into the inverse assembler of the present invention in direct accordance with the format of user documentation provided by the manufacturer of the respective microprocessor is published, and wherein all branches of the decision tree are interconnected in the form given by the decision tree. Furthermore, the inverse assembler of the present invention is able to inversely assemble the executable code in such a way that the commands and data information contained therein can be distinguished from one another. The commands are identified by first identification means within the executable code. The data information is identified within the executable code by second identification means. The commands and the data information and the corresponding first and second identification means, which are recorded as part of the executable code, are stored in a recording memory of a recording device (eg a logic analyzer) and processed by the inverse assembler.
35

θ: Mit dem inversen Assembler der vorliegenden Erfindung werden die Schwierigkeiten der herkömmlichen inversen Assembler überwunden, indem die Zahl der Tabelleneingaben, die vom Benutzer für den Tabellenaufbau benötigt wird, vermindert wird. Ferner wird das vom Benutzer durchzuführende Verfahren für die Eingabe der binären Codeangaben und der Befehle, die diesen zugeordnet sind, vereinfacht. Weiterhin hat die Erfindung den Vorteil, daß zwischen Befehlen und Dateninformationen, die aus dem ausführbaren Code invers assembliert werden, unterschieden werden kann.θ: With the inverse assembler of the present invention The difficulties of traditional inverse assembler are overcome by increasing the number of table entries that are required by the user required for the table structure is reduced. It also describes the input procedure to be performed by the user the binary code information and the commands assigned to them are simplified. Furthermore, the invention has the advantage that a distinction is made between commands and data information that are inversely assembled from the executable code can.

Weitere Bereiche der Anwendbarkeit der vorliegenden Erfindung sind aus der folgenden Beschreibung ersichtlich. Es versteht sich jedoch, daß die Einzelheiten der Beschreibung und der besonderen Ausführungsbeispiele, die sich auf bevorzugte Ausführungsformen der Erfindung beziehen, zur Erläuterung angegeben sind. Verschiedene Änderungen und Modifikationen sind innerhalb des Erfindungsgedankens möglich und werden für den einschlägigen Fachmann aus der detaillierten Beschreibung ersichtlich.Further areas of applicability of the present invention will be apparent from the following description. It goes without saying However, that the details of the description and the particular embodiments relate to preferred embodiments of the invention, are given for illustration. Various changes and modifications are made within the The concept of the invention is possible and will be apparent to the person skilled in the art from the detailed description.

Die Erfindung wird im folgenden anhand eines in einer Zeichnung dargestellten Ausführungsbeispiels näher erläutert, aus dem sich weitere Merkmale sowie Vorteile ergeben.The invention is explained in more detail below with reference to an embodiment shown in a drawing, from which further features and advantages result.

Es zeigen:Show it:

Fig. la ein Software-Entwicklungsverfahren, bei dem eine höhere Computersprache oder eine Assemblersprache zur Erzeugung eines Satzes eines ausführbaren Codes benutzt wird;
30
1a shows a software development method in which a high-level computer language or an assembly language is used to generate a set of executable code;
30th

Fig. Ib ein Software-Analysierverfahren, mit dem der ausführbare Code in einen Satz mnemonischer Angaben einer Assemblersprache für das Austesten und die Analyse der Assemblersprache (die vom Benutzer erstellte Software) umgewandelt wird;Fig. Ib shows a software analysis method with which the executable Code in a set of mnemonic information in an assembly language for testing and analyzing the assembly language (the software created by the user) is converted;

- 10 -- 10 -

Fig. 2 ein Konzept eines Entscheidungsbaums, bei dem es sich um ein allgemein für die Speicherung von Tabellen im inversen Assembler der vorliegenden Erfindung benutztes Konzept handelt;Fig. 2 shows a concept of a decision tree which is a general one for the storage of tables in the the inverse assembler of the present invention;

Fig. 3a und 3b gemeinsam ein Paar von Kathddenstrahlröhrendarstellungen durch den inversen Assembler der vorliegenden Erfindung, bei dem jede der binären Codeangaben, die von einem Mikroprozessor erzeugt werden können und die entsprechenden Befehle im inversen Assembler als Satz von Tabellen gespeichert werden, die in Entscheidungsbaumform abgespeichert werden, wobei die Tabellen für die Vervollständigung eine wesentlich verminderte Zahl von Eingaben benötigen;Figures 3a and 3b collectively show a pair of cathode ray tube representations by the inverse assembler of the present invention in which each of the binary code indications, the can be generated by a microprocessor and the corresponding commands in the inverse assembler as a set are stored by tables that are stored in decision tree form, the tables for the completion requires a significantly reduced number of entries;

Fig. 4 die Vielzahl der von einem Mikroprozessor erzeugten binären Codeangaben, die Adressen-, Steuer- und Dateninformationen darstellen, die vom inversen Assembler gemäß der vorliegenden Erfindung erfaßt werden, wobei die dargestellten binären Codeangaben Befehle und Dateninformationen beinhalten, die im Aufnahmespeicher des Erfassungsgeräts (dem Logikanalysator) gespeichert und vor dem inversen Assemblierverfahren, das vom inversen Assembler gemäß der vorliegenden Erfindung ausgeführt wird, vorhanden sind;Fig. 4 shows the plurality of generated by a microprocessor binary code information representing address, control and data information that is generated by the inverse assembler according to of the present invention, the binary code information shown, commands and data information that are stored in the acquisition memory of the acquisition device (the logic analyzer) and before the inverse assembly method performed by the inverse assembler according to the present invention will be present;

Fig. 5 die binären Codeangaben gemäß Fig. 4 nach dem vom inversen Assembler gemäß der vorliegenden Erindung durchgeführten inversen Assemblierverfahren, wobei die binären Codeangaben gemäß Fig. 5 einen Satz mnemonischer Angaben in Assemblersprache, die den binären Codeangaben entsprechen, einschließen;Fig. 5 shows the binary code information according to FIG. 4 after the dated inverse assembler according to the present invention performed inverse assembly, wherein the binary code information according to FIG. 5, a set of mnemonic information in assembly language, which the binary Code details correspond to include;

- 11 -- 11 -

Ol Fig. 6 ein Blockdiagramm eines inversen Assemblersystems gemäß der vorliegenden Erfindung, das an eine Benutzerschaltung angeschlossen ist, wobei die Benutzerschaltung als einen Teil einen Speicher für die Abspeicherung der binären Codeangaben, die den auszutestenden Assemblersprachebefehlen zugeordnet sind, und den für die Ausführung der binären Codeangaben bestimmten Mikroprozessor enthält, der den ausführbaren Code erzeugt, der die Vielzahl binärer Codeangaben umfaßt, die sich auf Lesen, Schreiben und in Reaktion hierauf auf Abholinformationen beziehen.Fig. 6 is a block diagram of an inverse assembly system in accordance with the present invention which is applied to user circuitry is connected, the user circuit as part of a memory for storing the binary code information that is assigned to the assembly language commands to be tested and those for execution the binary code information contains the specific microprocessor that generates the executable code that the Includes a variety of binary code indications relating to reading, writing and, in response, to retrieval information relate.

Es wurde oben bereits dargelegt, daß zur inversen Assemblierung des vom Assembler (d.h. dem Mikroprozessor) ausgegebenen ausführbaren Code, d.h. der binären Codeangaben, die Bildung der Tabelle notwendig war. Bei den herkömmlichen inversen Assemblern war der Prozeß, der die Bildung der Tabelle umfaßt, sehr langsam, mühevoll, wenn nicht gar unmöglich. Es ist deshalb eine Hauptaufgabe der vorliegenden Erfindung, die Anzahl der Eingaben der binären Codeangaben und der entsprechenden Befehle, die für die Bildung der Tabelle notwendig sind, zu vermindern und zugleich deren Eingabe zu vereinfachen. Die zuerst erwähnte Aufgabe, die Verminderung der Anzahl der Eintragungen, wird durch Erkennung des folgenden allgemeinen Prinzips durchgeführt:It has already been stated above that for the inverse assembly of the executable output by the assembler (i.e. the microprocessor) Code, i.e. the binary code information that was necessary to form the table. With the conventional inverse assemblers the process of building the table was very slow, arduous, if not impossible. It is therefore a main object of the present invention, the number of inputs of the binary code information and the corresponding commands, which are necessary for the creation of the table to be reduced and at the same time to simplify their input. The first The mentioned task of reducing the number of entries is achieved by recognizing the following general principle carried out:

2n> 21 + 23, worin i + j = η sind.2 n > 2 1 + 2 3 , where i + j = η.

Im Kontext der vorliegenden Erfindung ist jede binäre Codeangabe, wenn der Assembler ein Mikroprozessor ist, und wenn ein 16-Bit-Mikroprozessor verwendet wird, jeder Binärcode, d.h. jede Busabwicklung, die vom Mikroprozessor veranlaßt wird, eine 16-Bit-Binärzahl. Es gibt jedoch 2 mögliche Binärzahlen, die vom Mikroprozessor erzeugt werden können, deshalb sind 2In the context of the present invention, each binary code indication is when the assembler is a microprocessor and when a 16-bit microprocessor is used, each binary code, i.e. each bus transaction initiated by the microprocessor, one 16-bit binary number. However, there are 2 possible binary numbers that can be generated by the microprocessor, therefore 2

mögliche Befehle vorhanden, die invers assembliert werden müssen.possible commands are available that have to be assembled inversely.

- 12 -- 12 -

Ol Die herkömmlichen inversen Assembler benötigen die Bildung einer Tabelle und deren Speicherung in einem Speicher. Für das oben angegebene Beispiel hat die Tabelle eine erste Spalte, die eine Liste von 2 Binärzahlen (für einen 16-Bit-Mikroprozessor) aufweist, wobei die zweite Spalte eine entsprechende Liste von 2
Befehlen hat. Mit einer so großen Zahl an Eingaben war die Tabelle schwierig, wenn nicht gar unmöglich, aufzubauen. Als Alternative benötigte der herkömmliche inverse Assembler den Einsatz eines besonderen Nur-Lese-Speichers (ROM) für die inverse Assemblierung durch einen Mikroprozessor in einem Logikanalysator.
Ol The conventional inverse assemblers require the creation of a table and its storage in a memory. For the example given above, the table has a first column that has a list of 2 binary numbers (for a 16-bit microprocessor), with the second column having a corresponding list of 2
Has commands. With so many entries, the table was difficult, if not impossible, to build. As an alternative, the conventional inverse assembler required the use of a special read-only memory (ROM) for inverse assembly by a microprocessor in a logic analyzer.

Der inverse Assembler der vorliegenden Erfindung benötigt andererseits ebenfalls die Bildung einer Tabelle. Jedoch hat die im Speicher aufzubauende und abzuspeichernde Tabelle die Struktur eines Entscheidungsbaums, bei dem anstelle einer Tabelle, die eine Liste von 2 Eintragungen benötigt, zwei oder mehr Tabel- ' len verwendet werden, die in Form eines Baums verkettet sind. Für das oben beschriebene Beispiel können zwei miteinander verkettete Tabellen benutzt werden, wobei jede Tabelle in ihrerThe inverse assembler of the present invention, on the other hand, needs also the creation of a table. However, the table to be set up and saved in the memory has the structure a decision tree in which instead of a table that requires a list of 2 entries, two or more table- ' len can be used, which are concatenated in the form of a tree. For the example described above, two can be related to each other Linked tables are used, with each table in its

Q -I C Q -I C QQ QQ

ersten und zweiten Spalte 2 Eintragungen hat. Da 2 ) 2 +2 werden in den ersten und der zweiten Spalten der beiden Tabellen weniger Eintragungen benötigt als in der einzigen Tabelle nach dem Stand der Technik. In ähnlicher Weise können vier Tabellen verwendet werden, die in Form eines Entscheidungsbaums miteinander verkettet sind, wobei jede Tabelle 2 Eintragungen in ihrer ersten und zweiten Spalte benötigt. Da 2 > 2 + 2 + 2 + 2 ist, ist es viel einfacher vier Entscheidungsbaumtabellen statt einer einzigen Tabelle nach dem Stand der Technik Zu bilden. Es wird auf die Fig. 2 hingewiesen, in der ein Beispiel des Entscheidungsbaums-Konzept dargestellt ist, das von der vorliegenden Erfindung verwendet wird. In Fig. 2 sind eine Vielzahl von in Entscheidungsbaumform miteinander verketteterfirst and second column has 2 entries. Since 2) 2 +2, fewer entries are required in the first and second columns of the two tables than in the single table according to the prior art. In a similar way, four tables can be used, which are linked together in the form of a decision tree, with each table requiring 2 entries in its first and second column. Since 2> 2 + 2 + 2 + 2, it is much easier to build four decision tree tables rather than a single prior art table Z u. Referring to Figure 2, there is shown an example of the decision tree concept employed by the present invention. In Fig. 2, a plurality of are chained together in decision tree form

- 13 -- 13 -

Ol Tabellen dargestellt. Die Zusammensetzung jeder dieser Tabellen wird unter Bezug auf die Fig. 3a und 3b beschrieben. Wenn der inverse Assembler der vorliegenden Erfindung zu Beginn auf die Tabelle 1 verweist, um den ausführbaren Code in einen entsprechenden Satz mnemonischer Angaben in Assemblersprache invers zu assemblieren, wird eine Entscheidung getroffen, entweder auf die Tabelle 2 oder die Tabelle 3 zu verweisen. Wenn auf die Tabelle 2 verwiesen wird, wird eine weitere Entscheidung getroffen, entweder auf die Tabelle 4 oder auf die Tabelle 5 zu verweisen. Wenn auf die Tabelle 5 verwiesen wird, wird eine zusätzliche Entscheidung getfoffen, entweder auf die Tabelle 10 oder auf die Tabelle 11 zu verweisen. Durch die Bezugnahme auf die Tabellen 1,2,5 und 11 in Kombination wird ein binäres Codewort (d.h. das 16-Bit binäre Codewort) vom inversen Assembler der vorliegenden Erfindung erfaßt. Die Ausgabe des Mikroprozessors wird invers in entsprechende mnemonische Angaben einer Assemblersprache assembliert. Wenn ein 16-Bit binärer Code invers assembliert werden muß, werden 2 Eintragungen in jeder Spalte der Tabellen 1,2,5 und 11 benötigt, um den 16-Bit binären Code in entsprechende mnemonische Angaben in Assemblersprache invers zu assemblieren. Es ist sehr viel einfacher 2 Eintragungen in jeder Spalte dieser Tabellen vorzusehen, als 2 Eintragungen in jeder Spalte der einzigen Tabelle einzugeben, die dem inversen Assembler des bekannten Stands der Technik entspricht.Ol tables shown. The composition of each of these tables will be described with reference to Figures 3a and 3b. When the inverse assembler of the present invention initially references the Table 1 refers to inversely converting the executable code into a corresponding set of mnemonic information in assembly language to assemble, a decision is made on either refer to Table 2 or Table 3. If reference is made to Table 2, a further decision is made, to refer to either Table 4 or Table 5. When referring to Table 5, a additional decision made, either on table 10 or refer to Table 11. By referring to Tables 1, 2, 5 and 11 in combination, it becomes a binary Code word (i.e. the 16-bit binary code word) from the inverse assembler of the present invention. The output of the microprocessor is inverted into corresponding mnemonic information of a Assembler language assembled. If a 16-bit binary code has to be assembled inversely, there are 2 entries in each Column of Tables 1, 2, 5 and 11 is required to convert the 16-bit binary code into corresponding mnemonic information in assembly language assemble inversely. It is much easier to have 2 entries in each column of these tables than 2 entries in each column of the single table corresponding to the inverse assembler of the known art.

In den Fig. 3a und 3b ist eine Kathodenstrahlröhrenanzeige über den inversen Assembler der vorliegenden Erfindung dargestellt. Die Anzeige legt ein spezifischeres Beispiel der Entscheidungsbaumstruktur der Tabelle dar. In Fig. 3a ist die "OPCODE01"-Tabelle dargestellt. Acht (8) Bit binäre Codeangaben erscheinen in der ersten Spalte 10 der "OPCODE01"-Tabelle. Eine zweite Spalte 12 ist eine "Aufruf-Spalte, um auf eine andere Tabelle Bezug zu nehmen. Eine dritte Spalte 14 ist eine Darstellungsspalte, um einen Teil einer binären Codeangabe auf einen Befehl zu bezie-Referring to Figures 3a and 3b, there is shown a CRT display via the inverse assembler of the present invention. The display sets forth a more specific example of the decision tree structure of the table. In Figure 3a is the "OPCODE01" table shown. Eight (8) bit binary code information appears in the first column 10 of the "OPCODE01" table. A second column 12 is a "call column to refer to another table. A third column 14 is a display column to refer to to relate part of a binary code specification to a command

-H--H-

-U--U-

Ol hen. Beispielsweise erscheint eine binäre Codeangabe "O1000XXX" in der ersten Spalte 10 in Fig. 3a. Die binären Zahlen 01000 beziehen sich auf einen Increment-Befehl (INC). Die letzten drei Gattungsbits, "XXX" werden, wenn in dieser Tabelle gesucht wird, nicht beachtet und unabhängig von ihrem Wert zu einer Tabelle, die "REG 16" genannt wird, durchgelassen, wie es von der Spalte 12 bestimmt wird.Ol hen. For example, a binary code "O1000XXX" appears in the first column 10 in Fig. 3a. The binary numbers 01000 refer to an increment command (INC). The last three Generic bits, "XXX", are ignored when a search is made in this table and, regardless of their value, become one Table called "REG 16" is passed as determined by column 12.

In Fig. 3b ist die Tabelle "REG 16" dargestellt. Wenn die drei Gattungsbits "XXX" den Wert "000" haben, dann entspricht dieser der Registeridentifi^zierung "AX". Durch die Verkettung der 1OPODEOl"- Tabelle 1 (Fig. 3a) mit der "REG 16"-Tabelle (Fig.In Fig. 3b, the table "REG 16" is shown. If the three generic bits "XXX" have the value "000", then this corresponds to the register identification "AX". By linking the 1 OPODEOL "table 1 (Fig. 3a) with the" REG 16 "table (Fig.

3b) in Entscheidungsbaumform kann festgestellt werden, daß dem binären Code "01000000" ein Increment-Register-Befehl AX ("INC AX") entspricht.3b) in the form of a decision tree it can be determined that the binary code "01000000" is accompanied by an increment register command AX ("INC AX ").

Die in den Fig. 3a und 3b dargestellten Tabellen sind in einmaliger Weise eingeteilt, um die Eintragung binärer Codeangaben (Fig. 3a) und der diesen zugeordneten Befehle zu vereinfachen. Wie oben dargelegt, führt der Mikroprozessor jeden Befehl aus und erzeugt für jeden der Befehle eine binäre Codeangabe. Der Hersteller des Mikroprozessors (der den Satz Assemblersprachebefehle, die in der auszutestenden Software enthalten sind, verarbeitet) stellt eine Benutzerdokumentation, zur Verfügung, in der die vom Mikroprozessor erzeugten binären Codeangaben auf die jeweiligen Befehle bezogen sind. Die Einteilung der Tabellen, die in Fig. 3a und 3b dargestellt sind, ist absichtlich in Übereinstimmung mit der Einteilung der Benutzerdokumentation gebracht, die vom Hersteller des Mikroprozessors zur Verfügung gestellt wird. Als Ergebnis dieser einander angepaßten Einteilungen ist es leichter, die Vielzahl der binären Codeangaben und die diesen zugeordneten Befehle in den inversen Assembler der vorliegenden Erfindung während des Verfahrens des Aufbaus der Tabelle einzugeben.The tables shown in FIGS. 3a and 3b are subdivided in a unique manner in order to allow the entry of binary code information (Fig. 3a) and the commands assigned to them. As stated above, the microprocessor executes each instruction and generates a binary code for each of the commands. The manufacturer of the microprocessor (which provides the set of assembly language instructions, which are contained in the software to be tested, processed) provides user documentation in which the binary code information generated by the microprocessor is related to the respective commands. The division of the tables, shown in Figures 3a and 3b is intentionally in accordance with the classification of the user documentation which is provided by the manufacturer of the microprocessor. As a result of these matched classifications it is easier to use the inverse assembler of the present invention during the process of building the table.

- 15 -- 15 -

Ol In Fig. 4 ist die Vielzahl der binären Codeangaben dargestellt, wie sie in dem Aufnahmespeicher des inversen Assemblers des Logikanalysators gespeichert sind. Diese Codeangaben werden vom Mikroprozessor entsprechend der Vielzahl der Befehle erzeugt und verarbeitet. Die binären Codeangaben werden durch den Logikanalysator (ein Erfassungsgerät) der vorliegenden Erfindung vom Mikroprozessor aufgenommen und im Aufnahmespeicher abgespeichert. Zu beachten ist, daß diese binären Codeangaben nicht dem vom inversen Assembler des Logikanalysators der vorliegenden Erfindung durchgeführten inversen Assemblierverfahren unterworfen worden sind und deshalb keine zugeordneten mnemonischen Angaben in Assemblersprache aufweisen.Ol In Fig. 4 the multitude of binary code information is shown, as they are stored in the recording memory of the inverse assembler of the logic analyzer. These code details are taken from the Microprocessor generates and processes according to the multitude of commands. The binary code information is provided by the logic analyzer (a detection device) of the present invention is received by the microprocessor and stored in the receiving memory. It should be noted that these binary code specifications are not the same as those used by the inverse assembler of the logic analyzer of the present Invention performed inverse assembly process subjected and therefore have no associated mnemonic information in assembly language.

Der Mikroprozessor stellt einen Bestandteil einer Benutzerschaltung dar. Die Benutzerschaltung enthält einen ersten Speicher (d.h. einen Nur-Lese-Speicher) für die -Speicherung des Satzes von Assemblersprachebefehlen und einen zweiten Speicher (d.h. einen Speicher RAM mit wahlfreiem Zugriff) für die Speicherung von Daten, die vom Mikroprozessor benutzt werden, wenn die im ersten Speicher enthaltenen Befehle ausgeführt werden. Gemäß Fig. U enthält eine erste Informationsspalte 16 Adreßdaten, die einerseits die jeweilige Adresse im ersten Speicher der Benutzerschaltung, in dem die Assemblersprachebefehle gespeichert sind, und andererseits die jeweilige Adresse im zweiten Speicher der Benutzerschaltung angeben, in dem die Informations daten gespeichert sind. Eine zweite Spalte 18 enthält eine Vielzahl von Kennzeichnungsbits, die für die Unterscheidung zwischen den binären Codeangaben, die den vom Mikroprozessor als Teil des ausführbaren Code erzeugten und im ersten Speicher abgespeicherten Assemblersprachebefehlen entsprechen, und den binären Codeangaben verwendet werden, die den vom Mikroprozessor ebenfalls erzeugten und in dem zweiten Speicher abgespeicherten Dateninformationen entsprechen. Eine dritte Spalte 20 enthält in hexadezimaler Form die Assemblersprachebefehle und die Dateninformationen,The microprocessor forms part of a user circuit. The user circuit contains a first memory (ie a read-only memory) for storing the set of assembly language instructions and a second memory (ie a RAM with random access memory) for storing data used by the microprocessor when executing the instructions contained in the first memory. According to FIG. U , a first information column 16 contains address data which indicate on the one hand the respective address in the first memory of the user circuit in which the assembly language commands are stored, and on the other hand the respective address in the second memory of the user circuit in which the information data are stored. A second column 18 contains a plurality of identification bits which are used to distinguish between the binary code information, which corresponds to the assembly language instructions generated by the microprocessor as part of the executable code and stored in the first memory, and the binary code information which is also generated by the microprocessor and correspond to data information stored in the second memory. A third column 20 contains the assembly language commands and the data information in hexadecimal form,

- 16 -- 16 -

Ol die den Adressen zugeordnet sind, die in der ersten Spalte 16 erscheinen. Zu beachten ist jedoch, daß die Befehls- und Dateninformationen, die in der dritten Spalte 20 erscheinen, nicht leicht zu entschlüsseln und zu verstehen sind, da die Befehls- und Dateninformationen in Form hexadezimaler Zeichen erscheinen.Ol which are assigned to the addresses that appear in the first column 16. It should be noted, however, that the command and data information, which appear in the third column 20 are not easy to decipher and understand because the command and Data information appears in the form of hexadecimal characters.

Um die im ersten Speicher der Benutzerschaltung abgespeicherten Assemblersprachebefehle zu überprüfen, ist es erforderlich, daß die in Spalte 20 gemäß Fig. 4 erscheinenden Informationen leicht gelesen werden können, d.h. die vom Mikroprozessor wiedergewonnenen und im Aufnahmespeicher des inversen Assemblers des Logikanalysators abgespeicherten Befehls- und Dateninformationen müssen leicht bestimmt und analysiert werden können, um das Ausmaß festzustellen, bis zu dem die in letzterem abgespeicherten Befehls- und Dateninformationen den Satz von Assemblersprachebefehlen genau wiedergeben, die im ersten Speicher der Benutzerschaltung abgespeichert sind.In order to check the assembly language commands stored in the first memory of the user circuit, it is necessary that the information appearing in column 20 of Figure 4 can be easily read, i.e. that retrieved by the microprocessor and command and data information stored in the recording memory of the inverse assembler of the logic analyzer must be easily determined and analyzed in order to determine the extent to which the data stored in the latter can be determined Command and data information accurately reflects the set of assembly language commands stored in the first memory of the user circuit are stored.

In Fig. 5 ist das Ergebnis, die Vielzahl der binären Codeangaben, wie sie in Fig. 4 gezeigt sind, nach der Verarbeitung im inversen Assemblierverfahren der vorliegenden Erfindung dargestellt. Eine erste Spalte 22 stellt die gleichen Adreßdaten dar, die in der ersten Spalte 16 der Fig. 4 gezeigt sind. Eine zweite Spalte 24 enthält jedoch den Satz mnemonischer Angaben in Assemblersprache, der den Assemblersprachebefehlen und Dateninformationen entspricht, die in der dritten, in Fig. 4 dargestellten Spalte erscheinen. Die mnemonischen Angaben in Assemblersprache stellen die im Aufnahmespeicher des inversen Assemblers des Logikanalysators abgespeicherten Befehls— und Dateninformationen dar und werden vom Softwareentwerfer dazu benutzt, den Satz von Assemblersprachebefehlen, die im ersten Speicher enthalten sind, auszutesten.In Fig. 5 the result is the plurality of binary code items as shown in Fig. 4 after processing in inverse assembly method of the present invention. A first column 22 represents the same address data shown in the first column 16 of FIG. A second However, column 24 contains the assembly language mnemonic set, assembly language instructions and data information which appear in the third column shown in FIG. The mnemonic information in assembly language represent the command and data information stored in the memory of the inverse assembler of the logic analyzer and are used by the software designer to convert the set of assembly language instructions contained in the first memory are to be tested.

- 17 -- 17 -

Ol Wie in den obigen Abschnitten bereits angedeutet, müssen zur Umwandlung der in Fig. 4 dargestellten Informationen in die in Fig. 5 dargestellten Informationen die Informationen in einen Speicher (einen Speicher mit wahlfreiem Zugriff) eingegeben und darin abgespeichert werden, damit die Tabelle aufgebaut werden kann, die in einer ersten Spalte die Vielzahl der binären Codeangaben, die vom Mikroprozessor erzeugt werden können, und in einer zweiten Spalte die Befehle der mnemonischen Angaben in Assemblersprache, die den Codeangaben entsprechen, enthält. Die Assemblersprachebefehle in binärer oder vorzugsweise in hexadezimaler Form, die in der dritten Spalte der Fig. 4- gezeigt sind, sind als Index für diese Tabelle in deren erster Spalte angeordnet. Die gespeicherten mnemonischen Ausdrücke in Assemblersprache werden zur Bildung der Anzeige auf dem Logikanalysator, wie in Fig. 5 dargestellt, benutzt. Wenn ein 8 Bit- oder ein Mikroprozessor mit größerer Bitzahl in der Benutzerschaltung in Verbindung mit dem herkömmlichen inversen Assembler eines Logikanalysator verwendet wurde, erwies sich, wie oben dargelegt, die Aufgabe der Bildung der Tabelle als sehr schwierig, wenn nicht gar unmöglich. Die Entscheidungsbaumstruktur der in dem Speicher mit wahlfreiem Zugriff des Logikanalysators gespeicherten Tabelle gemäß der vorliegenden Erfindung wird, wie in den Fig. 2, 3a und 3b gezeigt, dazu benutzt, die Aufgabe der Bildung der Tabelle zu vereinfachen.As already indicated in the above sections, in order to convert the information shown in FIG. 4 into the information shown in 5, the information is entered into a memory (a random access memory) and are stored in it so that the table can be built up, which in a first column contains the multitude of binary Code information that can be generated by the microprocessor, and in a second column the commands of the mnemonic information in Assembly language that corresponds to the code specifications. The assembly language instructions in binary or preferably in hexadecimal Forms shown in the third column of Fig. 4- are placed as an index for this table in its first column. The stored mnemonic expressions in assembly language are used to form the display on the logic analyzer, as shown in Fig. 5 is used. If an 8-bit or a microprocessor with a larger number of bits is in the user circuit in Connection to the conventional inverse assembler of a logic analyzer was used, the task of forming the table proved to be very difficult, as stated above, when not at all impossible. The decision tree structure stored in the logic analyzer's random access memory Table according to the present invention, as shown in FIGS. 2, 3a and 3b, is used to achieve the object of Simplify formation of the table.

In Fig. 6 ist ein Blockdiagramm des Logikanalysators mit inversem Assembler der vorliegenden Erfindung dargestellt.6 is a block diagram of the logic analyzer with inverse Assembler of the present invention shown.

Eine Benutzerschaltung 26 enthält einen ersten Speicher 26a (in der Regel einen Nur-Lese-Speicher-ROM), der an einen Systembus angeschlossen ist und in dem die Firmware, (Software, die ausgetestet werden soll), gespeichert ist. Sie enthält auch den Mikroprozessor 26b, der mit dem Systembus verbunden ist und der die Firmware/Software ausführt und den ausführbaren Code, d.h.A user circuit 26 includes a first memory 26a (typically a read-only memory ROM) connected to a system bus is connected and in which the firmware (software to be tested) is stored. It also includes that Microprocessor 26b which is connected to the system bus and which executes the firmware / software and the executable code, i.

die Vielzahl der binären Codeangaben in Reaktion hierauf, er-the multitude of binary code entries in response to this,

- 18 -- 18 -

Ol zeugt. Sie enthält weiterhin einen zweiten Speicher 26c (in der Regel einen Speicher mit wahlfreiem Zugriff - RAM), der mit dem Systembus verbunden ist. Der Mikroprozessor 26b ist weiterhin mit einem Identifiziermodul 28 verbunden. Das Identifiziermodul 28 empfängt die Menge der binären Codeangaben aus dem Mikroprozessor 26b, unterscheidet zwischen den hierbei erhaltenen Assemblersprachebefehlen, die im ersten Speicher 26a abgespeichert sind, und den erhaltenen Dateninformationen, die in dem zweiten Speicher abgespeichert sind, und ordnet ein Kennzeichnungsbit den vom Mikroprozessor 26b erhaltenen Assemblersprachebefehlen und ein zweites Kennzeichnungsbit den vom Mikroprozessor erhaltenen Dateninformationen zu. Ein charakteristisches Identifiziermodul, das dazu benutzt werden kann, die Funktion des in Fig. 6 dargestellten Identifiziermoduls 28 auszuführen, ist ein von Tektronix, Inc. unter der Produkt-Nr. PMlXX (d.h. ein PMlIl für einen Typ 6809 Mikroprozessor) hergestelltes Modul. Die Patentanmeldung Serial-No. 312 466, die am 19· Oktober 1981 hinterlegt wurde, offenbart Einzelheiten des Aufbaus, die dem Identifiziermodul 28 entsprechen. Der zu der Patentanmeldung Serial-No. 312 466 vom 19* Oktober 1981 gehörige Anmeldungstext wird hiermit in die Beschreibung einbezogen. Als Alternative kann ein anderes Identifiziermodul zur Ausübung der Funktion des Identifiziermoduls 28 verwendet werden. Es kann ein von Tektronix, Inc. unter der Standard-Teilenummer PM109-MC 6800 hergestelltes Modul sein.Oil is testament. It also contains a second memory 26c (in the Usually random access memory (RAM) connected to the system bus. The microprocessor 26b is still there connected to an identification module 28. The identification module 28 receives the set of binary code indications from the microprocessor 26b, distinguishes between the assembly language commands obtained in this way, which are stored in the first memory 26a and the obtained data information stored in the second memory and assigns a flag the assembly language commands received from the microprocessor 26b and a second identifier bit those from the microprocessor received data information. A distinctive identifier module that can be used to identify the function of the The identification module 28 shown in Figure 6 is one available from Tektronix, Inc. under product no. PMlXX (i.e. a PMlIl for a type 6809 microprocessor) manufactured module. The patent application Serial-No. 312,466 issued on October 19, 1981 has been deposited discloses details of the structure corresponding to the identification module 28. The one for the patent application Serial-No. 312 466 of October 19, 1981 belonging application text is hereby included in the description. As an alternative, another identification module can be used to perform the function of the identification module 28 can be used. It can be one available from Tektronix, Inc. under standard part number PM109-MC 6800 be manufactured module.

Ein Datenerfassungssondenkopf A,30 empfängt die Assemblersprachebefehle, die Dateninformationen und die diesen zugeordneten Sondenbits vom Identifiziermodul 28, mit dem der Datenerfassungssondenkopf A,30 verbunden ist. Die andere Seite des Datenerfassungssondenkopfs A,30 ist mit einem Aufnahmespeicher 40 verbunden. Tatsächlich ist eine Vielzahl von Datenerfassungssondenköpfen einschließlich eines Datenerassungssondenkopfs B,34 eines Datenerfassungssondenkopfs C,36 und eines Datenerfassungssondenkopfs D,38 über Datenbusse mit dem Aufnahmespeicher 40 verbun-A data acquisition probe head A, 30 receives the assembly language commands, the data information and the probe bits associated therewith from the identification module 28 with which the data acquisition probe head A, 30 is connected. The other side of the data acquisition probe head A, 30 is connected to a receiving memory 40. Indeed, there is a wide variety of data acquisition probe heads including a data acquisition probe head B, 34 of a data acquisition probe head C, 36 and a data acquisition probe head D, 38 connected to the recording memory 40 via data buses

- 19 -- 19 -

Ol den. Jeder der Sondenköpfe 30,34,36 und 38 ist an acht Sondenspitzen angeschlossen. Die Sondenspitzen erfassen eine Vielzahl logischer Signale (die charakteristisch für die Menge von binären Codeangaben sind) von den Anschlüssen eines in der Prüfung befindlichen Produkts, z.B. des Identifiziermoduls 28 oder des der Benutzerschaltung 26 zugeordneten Mikroprozessors 26b. Die Sondenköpfe übertragen die Menge von logischen Signalen zum Aufnahmespeicher AO. Der Aufnahmespeicher AO ist in Abschnitte eingeteilt, die den einzelnen Sondenköpfen 30,3A,36 und 38 zugeordnet sind. Mit dem Aufnahmespeicher AO ist auch ein Speicheradreßregister A2 verbunden, das bestimmte Stellen im Aufnahmespeicher AO adressiert und in Übereinstimmung hiermit die Speicherung der logischen Signale aus den Sondenköpfen in den Stellen veranlaßt, die im Aufnahmespeicher über das Speicheradreßregister A2 adressiert wurden. Die vom Sondenkopf A,30 erfaßten logischen Signale werden im Aufnahmespeicher AO in Stellen gespeichert, die dem für den Sondenkopf A,30 vorbehaltenen Abschnitt entsprechen. In gleicher Weise werden die den Sondenköpfen 3A,36 und 38 zugeordneten logischen Signale im Aufnahmespeicher AO in Stellen gespeichert, die vom Speicheradreßregister A2 bestimmt werden und den Sondenköpfen B, C und D vorbehaltenen Abschnitten entsprechen.Ol den. Each of the probe heads 30, 34, 36 and 38 is connected to eight probe tips. The probe tips capture a multitude logical signals (which are characteristic of the set of binary code indications) from the terminals of one in the test located product, e.g., the identification module 28 or the microprocessor 26b associated with the user circuit 26. the Probe heads transmit the amount of logical signals to the recording memory AO. The recording memory AO is in sections which are assigned to the individual probe heads 30, 3 A, 36 and 38. With the receiving memory AO is also a memory address register A2 connected, which addresses certain locations in the recording memory AO and in accordance with this, the storage the logic signals from the probe heads in the places that are in the receiving memory via the memory address register A2 were addressed. The logic signals detected by the probe head A, 30 are stored in the recording memory AO in Stored positions that are reserved for the probe head A, 30 Section correspond. In the same way, the logic signals assigned to the probe heads 3A, 36 and 38 are im Recording memory AO stored in locations determined by the memory address register A2 and the probe heads B, C and D. correspond to the reserved sections.

Jeder der Erfassungssondenköpfe ist mit dem Eingang einer Worterkennungsschaltung AA verbunden. Die Worterkennungsschaltung AA stellt fest, ob ein gewünschtes Wort aus der Erfassungssonde im Aufnahmespeicher abgespeichert worden ist und beaufschlagt in Reaktion hierauf den Hauptbus des Logikanalysators und inversen Assemblers mit einem Ausgangssignal. Das Ausgangssignal enthält Daten-, Adressen- und Steuerinformationen. Das gewünschte Wort ist ein Wort, das der Benutzer in ein "Menü" auf der Anzeige eingegeben hat, bevor die Datenerfassung begonnen hat. Die Worterkennungsschaltung ist an einen Zähler A6 angeschlossenEach of the detection probe heads is inputted to a word recognition circuit AA connected. The word recognition circuit AA determines whether a desired word from the detection probe im Recording memory has been stored and applied in response to the main bus of the logic analyzer and inverse Assemblers with one output signal. The output signal contains data, address and control information. The word you want is a word that the user entered into a "menu" on the display before data collection began. the Word recognition circuitry is connected to a counter A6

- 20 -- 20 -

- 20 \ - 20 \

und aktiviert diesen Zähler 46 in Reaktion auf den Empfang des gewünschten Worts aus dem Erfassungssondenkopf. Der Zähler 46 wird auch von einem Taktgebereingang 48 beaufschlagt, der den Zähler veranlaßt, bis zu einer vorgegebenen Größe zu zählen.and activates this counter 46 in response to receipt of the desired word from the detection probe head. The counter 46 is also acted upon by a clock input 48 which causes the counter to count up to a predetermined size.

Der Zähler 46 ist mit dem Speicheradreßregister 42 verbunden und aktiviert dieses Speicheradreßregister 42, wenn der Zählstand im Zähler die vorgegebene Größe erreicht. Wenn das Speicheradreßregister 42 vom Zähler 46 aktiviert wird, wird die Adressierfunktion, die das Speicheradreßregister ausübt, beendet.The counter 46 is connected to the memory address register 42 and activates this memory address register 42 when the count has reached the specified size in the counter. When the memory address register 42 is activated by the counter 46, the The addressing function performed by the memory address register is terminated.

Als Ergebnis wird die weitere Speicherung von logischen Signalen aus den Sondenköpfen im Aufnahmespeicher 40 beendet.As a result, the further storage of logical signals from the probe heads in the receiving memory 40 is ended.

Eine Steuerzwischenregisterschaltung 50 ist an den Ausgang des Aufnahmespeichers 40 angeschlossen und empfängt hierdurch im Auslesezustand die im Aufnahmespeicher 40 enthaltenen Daten. Die Steuerzwischenregisterschaltung 50 ist mit dem Hauptbus 52 des inversen Assemblers der vorliegenden Erfindung verbunden und speist hierdurch die gespeicherten Daten in den Hauptbus ein. Darüberhinaus ist die Steuerzwischenregisterschaltung 50 mit dem Speicheradreßregister 42, dem Aufnahmespeicher 40 und der Worterkennungsschaltung 44 verbunden. Wenn die Steuerzwischenregisterschaltung 50 vom Hauptbus 52 Steuerdaten empfängt, steuert die Steuerzwischenregisterschaltung in Reaktion hierauf die Speicherauslesebetriebsart des Aufnahmespeichers 40, die Geschwindigkeit, mit der das Speicheradreßregister 42 den Aufnahmespeicher 40 adressiert, und das von der Worterkennungsschaltung 44 empfangene Wort.A control latch circuit 50 is connected to the output of the receiving memory 40 and thereby receives im Read-out status of the data contained in the recording memory 40. The control latch circuit 50 is connected to the main bus 52 of the inverse assembler of the present invention and thereby feeds the stored data into the main bus. In addition, the control latch circuit 50 is provided with the Memory address register 42, the receiving memory 40 and the word recognition circuit 44 connected. When control latch circuit 50 receives control data from main bus 52, it controls Control latch circuit in response to this, the memory readout mode of the receiving memory 40, the speed at which the memory address register 42 enters the receiving memory 40 addressed, and the word received by the word recognition circuit 44.

Ein Mikroprozessor 54, eine Tastatur 56, ein Speicher mit wahlfreiem Zugriff (RAM) 58, ein Nur-Lese-Speicher (ROM) 60 und eine Anzeigesteuerung 62 sind ebenfalls mit dem Hauptbus 52 des Logikanalysators mit inversem Assembler verbunden.A microprocessor 54, a keyboard 56, a memory with random Access (RAM) 58, read only memory (ROM) 60 and display control 62 are also connected to main bus 52 of the Logic analyzer connected to inverse assembler.

Der Mikroprozessor 54 ist eine zentrale Verarbeitungseinheit. Er verarbeitet die über die Steuerzwischenregisterschaltung 50 ausThe microprocessor 54 is a central processing unit. It processes the data via the intermediate control register circuit 50

- 21 -- 21 -

Ol dem Aufnahmespeicher 40 wiedergewonnene Information in Übereinstimmung mit den von der Tastatur 56 und den im Nur-Lese-Speicher 60 enthaltenen Befehlen und erzeugt ein entsprechendes "Steuersignal. Der Speicher mit wahlfreiem Zugriff 58 speichert die Tabellen in Entscheidungsbaumform, wobei die binären Codeangaben und die diesen zugeordneten Befehle über die Tastatur 56 in den Aufnahmespeicher des Logikanalysators mit inversem Assembler eingegeben und darin gespeichert werden. Die im Nur-Lese-Speicher 60 gespeicherte Firmware veranlaßt den Mikroprozessor 54 und versetzt ihn in die Lage, die Tabellen in Entscheidungsbaumform für die Speicherung in dem Speicher mit wahlfreiem Zugriff in Reaktion auf den Empfang der über die Tastatur 56 eingegebenen binären Codeangaben und zugeordneten Befehle zu erstellen. Die Anzeigesteuerung 62 arbeitet gemäß Befehlen, die vom Nur-Lese-Speicher 60 empfangen werden, und gemäß Verarbeitungsbefehlen , die vom Mikroprozessor 54 empfangen werden, zur Erzeugung einer Anzeige auf einem Darstellungsmonitor 64 des Logikanalysators mit inversem Assembler. Die Anzeige auf dem Darstellungsmonitor 64 wird mit Hilfe eines Zeichengenerators 66 erzeugt, der zwischen der Anzeigesteuerung 62 auf der einen Seite und dem Darstellungsmonitor 64 auf der anderen Seite angeordnet ist.Information retrieved from the recording memory 40 in accordance with those from keyboard 56 and those in read-only memory 60 and generates a corresponding "control signal. The random access memory 58 stores the Tables in decision tree form, with the binary code information and the commands assigned to them via the keyboard 56 in the recording memory of the logic analyzer can be entered and stored in inverse assembler. The ones in read-only memory 60 stored firmware causes the microprocessor 54 and enables it to the tables in decision tree form for storage in random access memory in response to receipt of the keypad 56 to create binary code information and associated commands entered. The display controller 62 operates in accordance with commands that from read-only memory 60 and in accordance with processing instructions received from microprocessor 54 for Generation of a display on a display monitor 64 of the logic analyzer with inverse assembler. The ad on the Display monitor 64 is generated with the aid of a character generator 66, which between the display control 62 on the one Side and the display monitor 64 is arranged on the other side.

Der Darstellungsmonitor 64 erzeugt die in den Fig. 3a und 3b gezeigten Anzeigen. Der Benutzer bzw. Operator des" Logikanalysators mit inversem Assembler beobachtet diese Anzeigen auf dem Darstellungsmonitor 64, wenn er über die Tastatur 56 die binären Codeangaben und die diesen zugeordneten Befehle von der Benutzerdokumentation des Mikroprozessors 26b der Benutzerschaltung in den Logikanalysator mit inversem Assembler überträgt. Diese binären Codeangaben und Befehle stellen alle möglichen binären Codeangaben und die zugeordneten mnemonischen Angaben in Assemblersprache dar, die vom Mikroprozessor 26b innerhalb der Benutzerschaltung 26 erzeugt werden können.
35
The display monitor 64 generates the displays shown in FIGS. 3a and 3b. The user or operator of the "logic analyzer with inverse assembler observes these displays on the display monitor 64 when he transmits the binary code information and the commands assigned to these from the user documentation of the microprocessor 26b of the user circuit to the logic analyzer with inverse assembler via the keyboard 56 binary code information and commands represent all possible binary code information and the associated mnemonic information in assembly language that can be generated by the microprocessor 26b within the user circuit 26.
35

- 22 -- 22 -

Ol Die Arbeitsweise des in Fig. 6 des Systemblockdiagramms dargestellten Logikanalysator mit inversem Assembler ist in den folgenden Abschnitten in Verbindung mit den Fig. 2, 3a, 3b, 4 und 5 dargelegt.Ol The operation of the one shown in Figure 6 of the system block diagram An inverse assembler logic analyzer is described in the following sections in conjunction with FIGS. 2, 3a, 3b, 4 and 5 outlined.

Der Operator bzw. Benutzer des Logikanalysators mit inversem Assembler geht von dem Satz der Benutzerdokumentation aus, die dem Mikroprozessor 26b innerhalb der Benutzerschaltung 26 zugeordnet ist. Die Benutzerdokumentation wird für die Bildung der Tabelle verwendet, die in Entscheidungsbaumform im Speicher mit wahlfreiem Zugriff 58 abgespeichert wird, wobei die Information über die Tastatur 56 eingegeben wird. Der Operator bzw. Benutzer veranlaßt den Logikanalysator mit inversem Assembler der vorliegenden Erfindung auf dem Darstellungsmonitor 64 eine Anzeige ähnlich derjenigen darzustellen, die in Fig. 3a der Zeichnung gezeigt ist. Unter Benutzung des Satzes der Benutzerdokumentation, der Anzeige auf dem Monitor 64 und der Tastatur 56 füllt der Operator bzw. der Benutzer die in Fig. 3a gezeigten Informationen aus und vervollständigt sie, wobei er die binären Codeangaben in der ersten Spalte 10, die Namen der anderen Tabellen, auf die Bezug genommen wird, in der Spalte 12 und die den binären Codeangaben zugeordneten Befehle in der dritten Spalte 12 einschließt. Der Operator bzw. Benutzer veranlaßt den Loganalysator mit inversem Assembler, auf dem Monitor 64 eine Anzeige auszugeben, die ähnlich derjenigen ist, die in Fig. 3b der Zeichnung dargestellt ist, und er vervollständigt die angezeigte Information. Tatsächlich gibt der Operator bzw. Benutzer unter Bezug auf die Benutzerdokumentation, die vom Hersteller des Mikroprozessors 26b innerhalb der Benutzerschaltung 26 ausgegeben ist, die Menge der binären Codeangaben ein, die von dem Mikroprozessor 26b erzeugt werden kann.The operator or user of the logic analyzer with inverse assembler proceeds from the set of user documentation which associated with the microprocessor 26b within the user circuit 26. The user documentation is used for the formation of the Table stored in decision tree form in random access memory 58 with the information is entered via the keyboard 56. The operator or user initiates the logic analyzer with the inverse assembler of the present invention on the display monitor 64 a display similar to that shown in Fig. 3a of the drawing. Using the set of user documentation, the display on the monitor 64 and the keyboard 56 fills the operator or the user selects the information shown in FIG. 3a and completes it, with the binary code information in the first column 10, the names of the other referenced tables in column 12 and the binary code information associated commands in the third column 12 includes. The operator or user initiates the log analyzer with inverse assembler to output a display on the monitor 64 which is similar to that shown in FIG. 3b of the drawing, and it completes the information displayed. In fact, the operator or user gives with reference to the user documentation issued within the user circuit 26 by the manufacturer of the microprocessor 26b is the amount of binary code information that can be generated by microprocessor 26b.

- 23 -- 23 -

Ol Der Mikroprozessor 54 veranlaßt in Übereinstimmung mit den Befehlen, die in der Firmware enthalten sind, die im Nur-Lese-Speicher 60 abgespeichert ist, die Speicherung von Tabellen, wie sie in Fig. 3a und 3b erscheinen, im Speicher mit wahlfreiem Zugriff 58. Die Tabellen enthalten die binären Codeangaben und die zugeordneten mnemonischen Angaben, die über die Tastatur 56 eingegeben werden. Der Mikroprozessor 54 speichert die Tabellen in Form eines Entscheidungsbaum, der in Fig. 2 der Zeichnung dargestellt ist, im Speicher mit wahlfreiem Zugriff 58. Als Folge davon wird vom Logikanalysator mit inversem Assembler eine geringere Anzahl von Eingaben für die Bildung der Tabellen benötigt, die im Speicher mit wahlfreiem Zugriff 58 zu speichern sind.Ol The microprocessor 54 initiates the read-only memory in accordance with the instructions contained in the firmware 60 is stored, the storage of tables, as they appear in Fig. 3a and 3b, in memory with optional Access 58. The tables contain the binary code information and the associated mnemonic information, which are entered via the keyboard 56 can be entered. The microprocessor 54 stores the tables in the form of a decision tree shown in Figure 2 of the drawings is shown in random access memory 58. As a result, the inverse assembler logic analyzer generates a fewer entries are required to form the tables to be stored in random access memory 58 are.

Wenn die Tabellen im Speicher mit wahlfreiem Zugriff 58 in der Form eines Entscheidungsbaums, wie er in Fig. 2 gezeigt ist, abgespeichert sind, ist der inverse Assembler der vorliegenden Erfindung bereit, die Menge der binären Codeangaben vom Mikroprozessor 26b, der der Benutzerschaltung 26 zugeordnet ist, zu erfassen. Die binäre Information, die dem Satz von Assemblersprachebefehlen, die im Nur-Lese-Speicher 26a der Benutzerschaltung gespeichert sind, entspricht, wird der Analyse und dem Austesten unterzogen. Der Mikroprozessor 26b führt die Befehle, die im Nur-Lese-Speicher 26a abgespeichert sind, aus und erzeugt in Reaktion hierauf eine Menge von binären Codeangaben, Das Identifiziermodul 28 empfängt die Menge an binären Codeangaben und ordnet den in der Menge der binären Codeangaben enthaltenen Assemblersprachebefehlen ein Kennzeichnungsbit und ein weiteres Kennzeichnungsbit den Dateninformationen zu, die in der Menge der binären Codeangaben enthalten sind und damit empfangen werden. Der Datenerfassungssondenkopf A,30 erfaßt die Menge der binären Codeangaben und der zugeordneten Kennzeichenbits und speichert die binären Codeangaben und die Kennzeichenbits im Aufnahmespeicher 40 des Logikanalysators mit inversem Assembler. Das Speicheradreßregister 42 adressiert in Reaktion auf die Signale des Taktgebereingangs 48 die Speicherplätze, die im Aufnahmespeicher 40 dem Sondenkopf A,30 zugeordnet sind. WennWhen the tables in random access memory 58 are in the form of a decision tree as shown in FIG. are stored, the inverse assembler of the present invention is ready to read the amount of binary code information from the microprocessor 26b assigned to the user circuit 26. The binary information associated with the set of assembly language instructions stored in the read-only memory 26a of the user circuit corresponds to analysis and debugging subjected. The microprocessor 26b executes the commands stored in the read-only memory 26a and generates in In response to this, a set of binary code indications. The identification module 28 receives the set of binary code indications and assigns an identifier bit and another to the assembly language instructions contained in the set of binary code information Identification bit to the data information that is contained in the set of binary code information and thus received will. The data acquisition probe head A, 30 acquires the amount of binary code information and the associated flag bits and stores the binary code information and the flag bits in the recording memory 40 of the logic analyzer with inverse assembler. In response to the signals from the clock input 48, the memory address register 42 addresses the memory locations which are in the Receiving memory 40 are assigned to the probe head A, 30. if

Ol die Worterkennungsschaltung 44 das gewünschte Wort von einer Erfassungssonde empfängt, erzeugt der Zähler 46 ein Ausgangssignal, das das Speicheradreßregister 42 aktiviert. Als Folge davon beendet das Speicheradreßregister 42 seine Adressierfunktion, wobei es die Speicherung der vom Sondenkopf A, 30 empfangenen binären Codeangaben und der Kennzeichnungsbits im Aufnahmespeicher 40 beendet. Der Aufnahmespeicher 40 enthält dann Informationen, in dem in Fig. 4 der Zeichnung dargestellten Format.When the word recognition circuit 44 receives the desired word from a detection probe, the counter 46 generates an output signal which which activates the memory address register 42. As a result, the memory address register 42 terminates its addressing function, wherein It stores the binary code information received from the probe head A, 30 and the identification bits in the recording memory 40 finished. The recording memory 40 then contains information in the format shown in FIG. 4 of the drawing.

Wie bereits erwähnt, enthält der Speicher mit wahlfreiem Zugriff 58 die Tabellen in Form des Entscheidungsbaums, der in Fig. 2 der Zeichnung dargestellt ist. Das besondere Format der Tabellen ist sehr ähnlich demjenigen Format, das in Fig. 3a und 3b der Zeichnung dargestellt ist. Der Mikroprozessor 54 gewinnt die im Aufnahmespeicher 40 enthaltenen Informationen wieder und wandelt unter Benutzung der Tabellen, die im Speicher mit wahlfreiem Zugriff 58 enthalten sind, die Assemblersprachebefehle, die in der dritten Spalte der Fig. 4 gezeigt sind, in entsprechende mnemonische Angaben um, wie sie in der zweiten Spalte 24 der Fig. 5 dargestellt sind, und speichert die umgewandelten mnemonischen Angaben in Assemblersprache im Speicher mit wahlfreiem Zugriff 58. Die Anzeigesteuerung 62 gewinnt die in dem Speicher mit wahlfreiem Zugriff 58 enthaltenen umgewandelten mnemonischen Ausdrücke in Assemblersprache zurück und zeigt die mnemonischen Angaben auf dem Darstellungsmonitor 64 mit Hilfe des Zeichengenerators 66 in der Form an, wie sie aus Fig. 5 der Zeichnung ersichtlich ist.As previously mentioned, the random access memory 58 contains the tables in the form of the decision tree shown in FIG the drawing is shown. The particular format of the tables is very similar to that shown in FIGS. 3a and 3b of the Drawing is shown. The microprocessor 54 recovers the information contained in the recording memory 40 and converts it using the tables contained in random access memory 58, the assembly language instructions described in the third column of Fig. 4 are shown in corresponding mnemonic data, as in the second column 24 of the Fig. 5, and stores the converted mnemonic information in assembly language in the memory with optional Access 58. The display controller 62 obtains the converted mnemonic contained in the random access memory 58 Expressions in assembly language and shows the mnemonic information on the display monitor 64 with the help of the Character generator 66 in the form as can be seen from Fig. 5 of the drawing.

Wie oben bereits angegeben, ermöglicht es die im Nur-Lese-Speieher 60 abgespeicherte Firmware dem Mikroprozessor 54, die Tabellen, wie in den Fig. 2, 3a und 3b der Zeichnung dargestellt, in Form eines Entscheidungsbaums abzuspeichern. Nachdem die Tabellen im Speicher mit wahlfreiem Zugriff 58 abgespeichert worden sind, werden die in der Form einer Menge von binären 35 As already indicated above, the firmware stored in the read-only memory 60 enables the microprocessor 54 to store the tables in the form of a decision tree, as shown in FIGS. 2, 3a and 3b of the drawing. After the tables are stored in random access memory 58, they are in the form of a set of binary 35

- 25 -- 25 -

Ol Codeangaben im Aufnahmespeicher 40 gespeicherten Assemblersprachebefehle in einen entsprechenden Satz von mnemonischen Angaben in Assemblersprache mittels der Tabellen umgewandelt und im Speicher mit wahlfreiem Zugriff 58 abgespeichert. Die im Nur-Lese-Speicher 60 kodierte Firmware, die letzlich für diesen Umwandlungsprozeß maßgebend ist, ist durch den folgenden Algorithmus gekennzeichnet:Ol code information stored in the recording memory 40 assembly language commands converted into a corresponding set of mnemonic information in assembly language by means of the tables and in Random Access Memory 58 stored. The firmware encoded in read-only memory 60 that is ultimately used for this conversion process is decisive is characterized by the following algorithm:

Inverser Assembleralgorithmus: Beschreibung des internen Datenformats des Entscheidungsbaums.Inverse assembly algorithm: Description of the internal data format of the decision tree.

Eine Tabelle besteht aus folgendem:A table consists of the following:

Tabellendefinition: Sie beschreibt die Umgebung für die Tabel-Table definition: It describes the environment for the table

Ie. Sie enthält: Tabellenname, beschreibt,Ie. It contains: table name, describes,

welche Datenkanäle Tabelleneingänge sind und wieviele Eingaben in der Tabelle sind.which data channels are table inputs and how many inputs are in the table.

0-256 Eintragungen: Jede Eingabe enthält den "WERT". Der "WERT" besteht aus dem binären Wert mit0-256 entries: Each entry contains the "VALUE". The "VALUE" consists of the binary value with

einer "Don't Care"-Maske. Wenn immer der Maskenwert Null ist, dann werden die Daten mit dem "WERT" verglichen. Wenn die Maske eine Eins ist (was ein "X" bezeichnet), dann wird dieses Bit nicht verglia "Don't Care" mask. Whenever the mask value is zero, then the data will compared with the "VALUE". If the mask is a one (which denotes an "X"), then this bit is not compared

chen.chen.

Jede Eingabe enthält dann 0-9 "Actions".
Jede "Action" enthält eine wahlweise Datenkette, die darzustellen ist,wahlweise Para
Each entry then contains 0-9 "Actions".
Each "Action" contains an optional data string to be displayed, optionally Para

metermasken und eine wahlweise Tabelle zum Aufrufen.meter masks and an optional table to call up.

Algorithmus für den Aufruf einer Tabelle:
35
Algorithm for calling a table:
35

Wie durch die Tabelle definiert, werden die entsprechenden Daten aus dem Aufnahme- (oder Bezugs-)Speicher ausgelesen.As defined by the table, the corresponding data are read out from the recording (or reference) memory.

Ol Die erste Eintragung wird dann mit den gelesenen Daten verglichen. Für jedes Datenbit wird folgendes durchgeführt:Ol The first entry is then compared with the data read. The following is carried out for each data bit:

Wenn die "Don't Care"-Maske Null ist, dann werden die Datenbits verglichen. Gleichen sie sich, dann wird anschließend das nächste Bit'verglichen. Wenn die "Don't Care"-Maske eine Eins ist, dann ist der Vergleich automatisch positiv. Wenn alle Bits verglichen sind und sich gleichen, dann ist dies die jeweils zu verwendende Eingabe.
10
If the "Don't Care" mask is zero, then the data bits are compared. If they are the same, the next bit is then compared. If the "Don't Care" mask is a one, then the comparison is automatically positive. If all the bits have been compared and are the same, this is the input to use.
10

Wenn "Ungleich" erscheint, dann wird der Vergleich auf die nächste Eingabe in der Tabelle übernommen. Dies wird fortgesetzt, bis entweder ein positiver Vergleich gefunden oder das Ende der Eingaben erreicht wird. Wenn der letztere Fall eintritt, dann ist diese Tabelle nicht aufgerufen.If "Not equal" appears, the comparison is applied to the next entry in the table. This continues until either a positive comparison is found or the end of the entries is reached. If the latter case occurs, this table is not called.

Sobald ein positiver Vergleich gefunden worden ist, müssen die "Actions" innerhalb der Parameterangabe interpretiert werden.
20
As soon as a positive comparison has been found, the "Actions" within the parameter specification must be interpreted.
20th

Die möglichen "Actions" (Vorgänge) sind:The possible "Actions" are:

Darstellung einer Datenkette (z.B. "Verschiebe"-)Representation of a data chain (e.g. "move" -)

Abgreifen von Parameterbits (Bits, die an andere TabellenPicking up of parameter bits (bits that are sent to other tables

übergeben werden sollen)
Aufruf einer anderen Tabelle
should be handed over)
Calling another table

Diese Maßnahmen werden fortgesetzt, bis auf das Ende der "Actions" (Vorgänge) gestoßen wird. Wenn dies eintritt, wird aus der laufenden Tabelle in die aufrufende Tabelle zurückgekehrt. Wenn keine aufrufende Tabelle vorhanden ist, dann wird für diese Zeile der erfaßten Daten die inverse Assemblierung durchgeführt.These measures continue until the end of the "Actions" is encountered. When this happens, will returned from the current table to the calling table. If there is no calling table, then the inverse assembly is carried out for this line of the recorded data.

- 27 -- 27 -

- 27 -- 27 -

Es ist einzusehen, daß die Funktion der Zuordnung der Kennzeichenbits zu den Befehls- und Dateninformationen innerhalb des ausführbaren Code durch einen Post-Prozessor-Algorithmus, der im Nur-Lese-Speicher 60 kodiert ist, in Verbindung mit dem Mikroprozessor 54 statt mit dem Identifiziermodul 28 ausgeführt werden kann, wie es oben beschreiben wurde.It will be appreciated that the function of assigning the flag bits to the command and data information within the executable code through a post-processor algorithm that is included in the Read only memory 60 is encoded in conjunction with the microprocessor 54 instead of the identification module 28, as described above.

Es ist ersichtlich, daß die oben beschriebene Erfindung in verschiedener Weise abgewandelt werden kann. Solche Abwandlungen sind nicht als Abweichungen vom Gedanken und Schutzbereich der Erfindung anzusehen. Alle derartigen Modifikationen, die Fachleuten offensichtlich sind, sollen in den Schutzumfang der Ansprüche einbezogen werden.It will be apparent that the invention described above can be modified in various ways. Such modifications are not to be regarded as deviations from the concept and scope of the invention. Any such modifications that Those skilled in the art are intended to be included within the scope of the claims.

LeerseiteBlank page

Claims (1)

STRASSB & STOFFREGBNSTRASSB & STOFFREGBN Patentanwälte · European Patent AttorneysPatent Attorneys · European Patent Attorneys Dipl.-Ing. Joachim Strasae, München . Dipl.-Phys. Dr, Hans-Herbert Stoffregen, Hanau Zweibrückenstraße 13 . D-8000 München 2 (Gegenüber dem Patentamt) . Telefon (08Θ) 23 SS 9β . Telex β 22 084Dipl.-Ing. Joachim Strasae, Munich. Dipl.-Phys. Dr, Hans-Herbert Stoffregen, Hanau Zweibrückenstrasse 13. D-8000 Munich 2 (opposite the patent office). Telephone (08Θ) 23 SS 9β. Telex β 22 084 Tektronix, Inc. München, 09. September 1983Tektronix, Inc. Munich, September 9, 1983 Beaverton, Oregon 97077 (V.St.A.) str-ks 14 377Beaverton, Oregon 97077 (V.St.A.) str-ks 14 377 Verfahren und Anordnung zurProcedure and arrangement for inversen Assemblierunginverse assembly PatentansprücheClaims 1?) Anordnung zur inversen Assemblierung, mit der ein Code, der einem gespeicherten Programm zugeordnet ist, in · einen entsprechenden Satz mnemonischer Angaben für die Interpretation durch einen Benutzer umgewandelt wird,
dadurch gekennzeichnet,
1?) Arrangement for inverse assembly, with which a code, which is assigned to a stored program, is converted into a corresponding set of mnemonic information for interpretation by a user,
characterized,
daß mit der Anordnung (40,42,44,46,48,50,52,54,58,60,62,66,that with the arrangement (40,42,44,46,48,50,52,54,58,60,62,66, 64) zur inversen Assemblierung eine Einrichtung (56) für die Eingabe umzuwandelnder Informationen verbunden ist, die eine Liste von Codeangaben, die dem Code entsprechen, der dem gespeicherten Programm entspricht, und eine Liste der entsprechenden mnemonischen Ausdrücke umfaßt, daß eine erste Einrichtung (54,58,60) für den Empfang und für die Speicherung der umzuwandelnden Informationen vorgesehen ist, die in einem Speicher (58) in Form eines Satzes von Entscheidungsbaumtabellen abspeicherbar sind, daß eine zweite Einrichtung (30,34,36,38,40) für die Erfassung und für die Speicherung des dem gespeicherten Programm entsprechenden Code vorgesehen ist, daß die erste Einrichtung (54,58,60) den in der zweiten Einrichtung (40) gespeicherten Code mit einem entsprechenden Satz der in der ersten Einrichtung gespeicherten, umzuwandelnden Informationen vergleicht und daß eine Einrichtung (60,62,64,66) zur Erfassung des entsprechenden Satzes umzuwandelnder Informationen von der ersten Einrichtung (54,58,60) und zur Darstellung dieses Satzes umzuwandelnder Informationen zur Interpretation für den Benutzer vorgesehen ist.64) a device (56) for the input of information to be converted is connected for inverse assembly, the a list of code details corresponding to the code corresponding to the stored program and a list of the corresponding mnemonic expressions that a first means (54,58,60) for the reception and for the Storage of the information to be converted is provided in a memory (58) in the form of a set of Decision tree tables can be saved that a second Device (30,34,36,38,40) for the acquisition and for the storage of the stored program corresponding Code is provided that the first device (54,58,60) with the code stored in the second device (40) and compares a corresponding set of the information to be converted stored in the first device and that means (60,62,64,66) for acquiring the corresponding set of information to be converted from the first Facility (54,58,60) and to present this set of information to be converted for interpretation to the user is provided. — 2 —- 2 - Ol 2. Anordnung nach Anspruch 1,Ol 2. Arrangement according to claim 1, dadurch gekennzeichnet,characterized, daß der dem gespeicherten Programm zugeordnete Code Befehle und Daten informationen enthält und daß die Anordnung zur inversen Assemblierung eine auf den Code, der dem gespeicherten Programm zugeordnet ist, ansprechende Einrichtung (28) aufweist, die zwischen den Befehlen und den Dateninformationen unterscheidet und die den Befehlen ein erstes Kennzeichen und den Dateninformationen ein zweites Kennzeichen zuordnet, wobei die zweite Einrichtung (30,34136,38,40) den Code, der dem gespeicherten Programm zugeordnet ist, und die diesem zugeordneten ersten und zweiten Kennzeichen erfaßt und den Code und die diesem entsprechenden ersten und zweiten Kennzeichen abspeichert.that the stored program associated code contains commands and data information and that the arrangement for inverse assembly means responsive to the code associated with the stored program (28) which distinguishes between the commands and the data information and which gives the commands a first identifier and assigns a second identifier to the data information, wherein the second means (30,34136,38,40) den Code associated with the stored program and the first and second identifiers associated therewith are detected and stores the code and the first and second identifiers corresponding thereto. 3. Anordnung nach Anspruch 2,
dadurch gekennzeichnet,
3. Arrangement according to claim 2,
characterized,
daß das gespeicherte Programm im Speicher (26a) einer Benutzerschaltung (26) enthalten ist, daß der dem Programm zugeordnete Code von einem in der Benutzerschaltung (26) angeordneten Mikroprozessor (26b) erzeugt wird und daß das Format der Tabellen, die die im Speicher (58) der ersten Einrichtung gespeicherten Entscheidungsbaumtabellen bilden, dem Format eines zugeordneten Satzes von Benutzungsdokumenten entspricht, die die Charakteristik des Mikroprozessors beschreiben.that the stored program is contained in the memory (26a) of a user circuit (26) that of the program associated code is generated by a microprocessor (26b) arranged in the user circuit (26) and that the The format of the tables making up the decision tree tables stored in the memory (58) of the first facility; corresponds to the format of an associated set of usage documents which is characteristic of the microprocessor describe. 4. Verfahren zur Durchführung mit einer Anordnung nach einem der vorausgehenden Ansprüche,4. A method for implementation with an arrangement according to one of the preceding claims, dadurch gekennzeichnet,characterized, daß die von einer Benutzerschaltung (26) erzeugbaren binären Codeangaben und die entsprechenden mnemonischen Anga-that the binary code information that can be generated by a user circuit (26) and the corresponding mnemonic information _ 3 -_ 3 - 01 ben vorab in Tabellen gespeichert werden, die nach einer01 ben can be saved in advance in tables, which after a Entscheidungsbaumstruktur miteinander verknüpft sind, daß von der Benutzerschaltung (26) während eines Arbeitsablaufs ausgangsseitig erzeugte binäre Codeangaben abgespeichertDecision tree structures are linked to that of the user circuit (26) during a workflow Binary code information generated on the output side is stored 05 werden, bis eine vorgebbare binäre Codeangabe festgestellt05 are determined until a predeterminable binary code specification is established ist und daß die von der Benutzerschaltung erhaltenen und abgespeicherten binären Codeangaben über die Tabellen mnemonische Angaben in Assemblersprache zurückverwandelt und angezeigt werden.and that the binary code information received and stored by the user circuit is mnemonic via the tables Information is converted back into assembly language and displayed.
DE19833332832 1982-09-13 1983-09-12 METHOD AND ARRANGEMENT FOR INVERSE ASSEMBLING Withdrawn DE3332832A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US41701482A 1982-09-13 1982-09-13

Publications (1)

Publication Number Publication Date
DE3332832A1 true DE3332832A1 (en) 1984-03-15

Family

ID=23652242

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833332832 Withdrawn DE3332832A1 (en) 1982-09-13 1983-09-12 METHOD AND ARRANGEMENT FOR INVERSE ASSEMBLING

Country Status (5)

Country Link
JP (1) JPS5971546A (en)
CH (1) CH660242A5 (en)
DE (1) DE3332832A1 (en)
GB (1) GB2126761B (en)
NL (1) NL8303116A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0209795A3 (en) * 1985-07-22 1990-04-04 Westinghouse Electric Corporation A method of creating and executing table driven logic
ES2133145T3 (en) * 1989-09-01 1999-09-01 Amdahl Corp PROGRAMMABLE COMPUTER WITH AUTOMATIC TRANSLATION BETWEEN THE SOURCE CODE AND THE OBJECT CODE WITH VERSION CONTROL.
CN102521011B (en) * 2011-11-18 2014-08-06 华为技术有限公司 Simulator generation method and simulator generation device

Also Published As

Publication number Publication date
NL8303116A (en) 1984-04-02
GB8321900D0 (en) 1983-09-14
GB2126761B (en) 1987-07-08
GB2126761A (en) 1984-03-28
JPS5971546A (en) 1984-04-23
CH660242A5 (en) 1987-03-31

Similar Documents

Publication Publication Date Title
DE69932344T2 (en) ACCESS TO HIERARCHICAL DATA STORAGE VIA SQL ENTRY
DE4015905C2 (en) Speech analysis device, method and program
DE3911465C2 (en) Process for the automatic configuration of technical systems from components
DE3317325A1 (en) COMPUTER CONTROLLED BY VOICE INPUT
DE3545125C2 (en)
EP0285221B1 (en) Method for detecting continually pronounced words
DE2946857A1 (en) WORD STORAGE DEVICE
DE10225381A1 (en) Method and device for storing memory test information
DE2515297A1 (en) TESTING SYSTEM FOR LOGICAL NETWORKS WITH SIMULATOR ORIENTED FAULT CHECK GENERATOR
DE3416939A1 (en) METHOD FOR CONTROLLING OPERATING DEVICES
EP2289022B1 (en) Method and apparatus for automatically determining control elements in computer applications
DE3027734A1 (en) FOLLOW-UP CONTROL DEVICE
DE4106164A1 (en) METHOD FOR SEARCHING AND ELIMINATING PROGRAM ERRORS BY EXECUTING A BLOCK MODE RUN
DE60217729T2 (en) METHOD FOR DETECTING AN ELECTRONIC DEVICE IN A MULTI CONTROL SYSTEM
DE3026055C2 (en) Circuit arrangement for automatic character recognition
DE60035092T2 (en) Image conversion apparatus, storage medium, and image conversion method
DE3503456A1 (en) Device for generating and editing written matter
DE3332832A1 (en) METHOD AND ARRANGEMENT FOR INVERSE ASSEMBLING
EP1297425A2 (en) Method and device for optimising a test programme
EP0417854B1 (en) Method for recognition of N different successions of words in a speech signal
DE3242631A1 (en) Programmable control device
DE2419836C3 (en) Circuit arrangement for executing subprogram jump instructions in data processing systems
DE3113189A1 (en) "METHOD AND DEVICE FOR CONVERTING DIGITAL CHARACTER CODES RECEIVED OR DELIVERED BY A DATA PROCESSING SYSTEM"
EP0708941B1 (en) Process for testing an object-oriented programme
DE4495111C2 (en) Method for determining a set of characteristic features in the context of object recognition

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee