JPS5971546A - Reverse assembly method - Google Patents

Reverse assembly method

Info

Publication number
JPS5971546A
JPS5971546A JP16907783A JP16907783A JPS5971546A JP S5971546 A JPS5971546 A JP S5971546A JP 16907783 A JP16907783 A JP 16907783A JP 16907783 A JP16907783 A JP 16907783A JP S5971546 A JPS5971546 A JP S5971546A
Authority
JP
Japan
Prior art keywords
microprocessor
memory
instructions
binary
assembly language
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.)
Pending
Application number
JP16907783A
Other languages
Japanese (ja)
Inventor
マ−ク・イ−・ペテエト
ジヤ−ド・ハンス・ホ−レン
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 JPS5971546A publication Critical patent/JPS5971546A/en
Pending 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 産業上の利用分野 本発明はデータ処理システムのアセンブラからの実行司
能なコード出力を対応する一連のアセンブリ前語二一モ
ニンクに変換し、この実行可能なコードに関連するソフ
トウェアをデバッグする逆アセンブリ方法に関する。
DETAILED DESCRIPTION OF THE INVENTION INDUSTRIAL APPLICATION The present invention converts executable code output from an assembler in a data processing system into a corresponding set of pre-assembly words and associates this executable code with Concerning disassembly methods for debugging software.

背景技術とその問題点 典型的なロジック・ステート・アナライザは、逆アセン
ブラ機能を有する。実行可能なコードで表わされるソフ
トウェア・パッケージをデバッグするために、逆アセン
ブラを用いて、データ処理システムのアセンブラが発生
した一連の実行可能なコードを対応する一連のアセンブ
リ言語二−モニックに変換する。例えば第1A図に示す
如く、ソフトウェアの開発過程においては、アセンブラ
又はコンパイラが実行可能なコードを発生ずる。
Background Art and Problems A typical logic state analyzer has a disassembler function. To debug a software package represented by executable code, a disassembler is used to convert a set of executable code generated by an assembler of a data processing system into a corresponding set of assembly language mnemonics. For example, as shown in FIG. 1A, during the software development process, an assembler or compiler generates executable code.

なお、このアセンブラはユーザからのアセンブリ汀aN
命令を受げ゛(、実行i+J能なコートを発41:する
Note that this assembler uses assembly information from the user.
Receives the command (, issues a command capable of executing i+J 41:.

この実行可能なコードは、アセンブリ言語命令を表わす
多くの2進コードから構成されており、ターゲット・シ
ステム(例えばマイクロプロセツサ)に利用される。第
1B図に示す如く、ロジック・アナライザの逆アセンブ
ラがソフトウェア解析に用いられる。ここで、ターゲッ
ト・システムに利用される実行可能なコードを対応する
一連のアセンブリ88%ニーモニックに変換する。この
対応する一連のアセンブリ言語二一モニソクを解析して
、一連のアセンブリ言a吾命令のデバッグを行なう。
This executable code is comprised of a number of binary codes representing assembly language instructions and is available to the target system (eg, a microprocessor). As shown in FIG. 1B, a logic analyzer disassembler is used for software analysis. Here, the executable code utilized on the target system is translated into a corresponding set of assembly 88% mnemonics. The corresponding series of assembly language instructions is analyzed to debug the series of assembly language instructions.

もし、第1A図のターゲット・システムが、対応する一
連のアセンブリ言梧二−モニックで定められた如く、ア
センブリ言語命令を止しく実行した場合、即ぢ、その実
行によっ゛ζユーザが望む結果が得られた場合、一連の
アセンブリ言語命令(又はこの−アセンブリ言語命令に
対応する西級官梧)は正確に記載されていたことになる
If the target system of Figure 1A correctly executes an assembly language instruction as defined by a corresponding set of assembly language mnemonics, then that execution immediately produces the result desired by the user. If this is the case, then the series of assembly language instructions (or the Western equivalent of this assembly language instruction) has been accurately described.

上述の如く、ユーザにより入力された一連のアセンブリ
言語命令をアセンブラはアセンブルし、多くの2進コー
ドで構成される実行可能なコードを発生ずる。ターゲッ
ト・システムは、限定するわけではないが、典型的には
マイクロプロセッサである。このマイクロプロセッサは
、アセンブラが発生した2進コードを実行する。ロジッ
ク・アナライザは、これら2進コードの実行をモニタす
ることができる。このコードをデバッグ(手直し)する
には、(マイクロプロセッサが実行した)2進コードを
元の一連のアセンブリ言語命令に再変換する、即ち、ユ
ーザが判断できるように対応する一連のアセンブリ言語
二一モニソクに逆アセンブルする必要がある。
As mentioned above, an assembler assembles a series of assembly language instructions input by a user and generates executable code made up of a number of binary codes. The target system is typically, but not limited to, a microprocessor. This microprocessor executes the binary code generated by the assembler. A logic analyzer can monitor the execution of these binary codes. To debug (tweak) this code, the binary code (executed by the microprocessor) must be translated back into a set of assembly language instructions, i.e., a corresponding set of assembly language instructions that can be interpreted by the user. It is necessary to disassemble it into Monisoku.

多くの2進コードを対応する一連のアセンブリ言轟吾二
−モニックに逆アセンブルするには、テーブル(対応表
)を作成するのに必要な情報をメモリに入力して蓄積す
る必要がある。このテーブルは2列(コラム)の情報を
有し、その第1列はマイクロプロセッサが発生可能な全
部の2進コードを表わす2進コードのリストで構成され
る。また第2列は、2進コードに関連するアセンブリ言
語ニーモニソク(命令)の対応リストで構成される。
In order to disassemble a number of binary codes into a corresponding set of assembly words, the information necessary to create a table must be entered and stored in memory. This table has two columns of information, the first of which consists of a list of binary codes representing all binary codes that the microprocessor can generate. The second column also includes a correspondence list of assembly language mnemonics (instructions) related to binary codes.

マイクロプロセッサが発生する多くの2進コードに関連
した各2進コードは、次のように逆アセンブリされる。
Each binary code associated with a number of binary codes generated by the microprocessor is disassembled as follows.

即ち、まず、メモリに蓄積されたテーブルの第1列にお
いて、逆アセンブリする2進コードのアドレス(場所)
を探す。次に第2列におい−ζ、対応するアセンブリ言
陪二−モニソク(命令)を確認する。よって、この表を
用いることにより、マイクロプロセッサが発生ずる多く
の2進コー1を対応する一連のアセンブリ言語二−モニ
ソクに逆アセンブルすることができる。
That is, first, in the first column of the table stored in memory, the address (location) of the binary code to be disassembled is
Search for. Next, in the second column -ζ, confirm the corresponding assembly directive (instruction). Thus, by using this table, a large number of binary code 1's generated by a microprocessor can be disassembled into a corresponding set of assembly language binary codes.

しかし、従来の逆アセンブラでは、上述のテーブルを作
成するタスクが不可能でないとしても、非常に冗長であ
った。8ビツトのマイクロプロセッサの大部分でば、こ
のテーブルの第1列は2e(即ら256)個の項目のリ
ストから構成されている。項目の数が256なのはまだ
よいが、16ビツトのマイクロプロセッサの場合、チー
フルの第1列は、21@(即ち、65536)個の2進
コード項目のリストから構成される。よって、ユーザは
65536個の2進コード及び関連した命令を登録して
、テーブルを作成しなければならない。このテーブルを
作成する場合、テーブルを蓄積するのに必要とするメモ
リ容量は膨大なものとなる。よって、従来の逆アセンブ
ラを用いた逆アセンブリ処理(特に16ビツト・プロセ
ッサの場合)は、不可能でないにしても、非現実的であ
った。
However, with conventional disassemblers, the task of creating the tables described above is extremely tedious, if not impossible. For most 8-bit microprocessors, the first column of this table consists of a list of 2e (or 256) entries. Although 256 entries would be better, for a 16-bit microprocessor, the first column of the tickle would consist of a list of 21 @ (i.e., 65536) binary code entries. Therefore, the user must register 65,536 binary codes and related instructions to create a table. When creating this table, the memory capacity required to store the table becomes enormous. Therefore, disassembly using conventional disassemblers (particularly for 16-bit processors) has been impractical, if not impossible.

とごろで、従来の逆アセンブラは符号化されたファーム
ウェアを有するリード・オンリ・メモリ(ROM)を含
んでいる。このファームウェアはマイクロプロセッサが
実行する一連のアセンブリ言語命令をデバッグする。し
かし、このROMは、マイクロプロセッサのある特定の
型式のもののみが実行するアセンブリ言語の命令のディ
スアセンブリを行なう。マイクロプロセッサの他の型式
のものを用いて上述の命令を実行した場合、このROM
内のファームウェアは命令をディスアセンブル、即ち逆
アセンブルすることができない。
Nowadays, conventional disassemblers include read-only memory (ROM) with encoded firmware. This firmware debugs a series of assembly language instructions executed by the microprocessor. However, this ROM disassembles assembly language instructions that only certain types of microprocessors execute. If another type of microprocessor is used to execute the above instructions, this ROM
The firmware within is not capable of disassembling instructions.

よっ°ζ、今までのROMを取外し、アセンブリ言語命
令を正確にディスアセンブルできるファームウェアのR
OMに変換する必要がある。異なるマイクロプロセッサ
を用いて一連のアセンブリ言語命令を実行する際に、今
までのROMを取外し、新しいROMと変換することが
必要なので、従来の逆アセンブラの用途は非常に制限さ
れた。
So °ζ, the firmware R allows you to remove the old ROM and accurately disassemble assembly language instructions.
Need to convert to OM. Executing a series of assembly language instructions using a different microprocessor requires removing the old ROM and converting it with a new ROM, making the use of conventional disassemblers very limited.

発明の目的 したがって、本発明の目的の1つは、従来の逆アセンブ
ラの欠点を改善した逆アセンブリ方法の提供にある。
OBJECTS OF THE INVENTION Accordingly, one of the objects of the present invention is to provide a disassembly method that improves the drawbacks of conventional disassemblers.

本発明の他の目的は、テーブル作成に必要な情報を逆ア
センブラのユーザに入力させて、従来技術の欠点を改善
することである。
Another object of the present invention is to improve the drawbacks of the prior art by allowing the user of a disassembler to input information necessary for table creation.

本発明の更に他の目的は、ユーザがテーブル作成に必要
な情報を人力する際、逆アセンブリ処理に関連したこの
テーブルを作成するに必要な2進コード及び関連したア
センブリ言語二一モニソク(命令)の項目数を大中に減
らして、従来の逆アセンブラの欠点を改善することであ
る。
Still another object of the present invention is to provide binary codes and related assembly language commands (commands) necessary for creating the table related to disassembly processing when the user inputs the information necessary for creating the table. The purpose is to reduce the number of items to a large extent and improve the shortcomings of conventional disassemblers.

本発明の他の目的は、ユーザがテーブルを作成する際に
必要とする項目数を減らし、2進ニード及びこのコード
に関連した命令のユーザ処理を簡略化して、従来技術の
欠点を改善することである。
Another object of the present invention is to reduce the number of entries required by the user when creating a table and to simplify the user's processing of binary needs and instructions associated with this code, thereby ameliorating the shortcomings of the prior art. It is.

本発明の他の目的は、実行可能なコードから逆アセンブ
ルしたデータ情報と命令とを区別することである。
Another object of the invention is to distinguish disassembled data information and instructions from executable code.

発明の概要 本発明の上述及びその他の目的は、テーブル作成に際し
、アセンブラが発生可能な全部の2進コード、及びそれ
に関連した対応アセンブリ言語ニーモニック(命令)の
全I11の項目が可能な逆アセンブラにより実現する。
SUMMARY OF THE INVENTION The above-mentioned and other objects of the present invention are to enable a disassembler to generate all binary codes that can be generated by an assembler and all I11 items of corresponding assembly language mnemonics (commands) associated therewith when creating a table. Realize.

これら2進コード及びアセンブリ言語二−モニ・ツクは
一連のデシジョン・ツリー・テーブルの形式(判断によ
り順次分岐する方式)で蓄積されており、このデシジョ
ン・ツリーの各ブランチに関連する要素は、マイクロプ
ロセッサの製造業者が発行したユーザ・ドキュメントの
フォーマットに直接一致するように本発明の逆アセンブ
ラに入力する。またデシジョン・ツリーの各ブランチを
デシジョン・ツリーの形態で互いにリンクする。更に、
本発明による逆アセンブラは実行可能なコードを逆アセ
ンブルすることができるので、このコードに含まれる命
令及びデータ情報を識別できる。この実行可能なコード
内の命令は、第1確認手段が識別し、また、このコード
内のデータ情報は第2確認手段が識別する。
These binary codes and assembly language binary codes are stored in the form of a series of decision tree tables (branching sequentially based on decisions), and the elements associated with each branch of this decision tree are The input to the disassembler of the present invention is directly matched to the format of the user documentation issued by the processor manufacturer. The branches of the decision tree are also linked together in the form of a decision tree. Furthermore,
A disassembler according to the present invention is capable of disassembling executable code and thus identifying the instruction and data information contained in this code. Instructions within this executable code are identified by a first verification means, and data information within this code is identified by a second verification means.

第1及び第2の確認手段は実行可能なコードの一部とし
て命令及びデータ情報を取込み、(ロジック・アナライ
ザの如き)取込み装置の取込めメモリは命令及びデータ
情報を蓄積する。そして、逆アセンブラにより命令及び
データ情報を処理する。
The first and second validation means capture the instruction and data information as part of the executable code, and the capture memory of the capture device (such as a logic analyzer) stores the instruction and data information. The instructions and data information are then processed by a disassembler.

実施例 上述の如く、アセンブラ(即ち、マイクロプロセ、す)
が出力した実行可能なコード、即ち、多くの2進コード
を逆アセンブルするには、上述のテーブルを作成する必
要があった。しかし、従来の逆アセンブラにおいては、
このテーブルを作成するタスクは不可能でないとしても
、非當に冗長であった。よって、本発明の主な目的はこ
のテーブルを作成するのに必要な2進コード及び関連し
た命令の項目数を減らすと共に、この入力を簡略化する
ことである。この項目数を減らすという第1の目的は、
次の一般的原理を利用している。
Example As mentioned above, an assembler (i.e., a microprocessor)
In order to disassemble the executable code outputted by the software, that is, a large number of binary codes, it was necessary to create the above-mentioned table. However, in conventional disassemblers,
The task of creating this table was extremely tedious, if not impossible. Therefore, a primary objective of the present invention is to reduce the number of entries of binary codes and associated instructions required to create this table, and to simplify this input. The first purpose is to reduce the number of items.
It utilizes the following general principles:

i + j =nのとき  2rL>2’ +2j本発
明の実施例において、アセンブラがマイクロプロセッサ
であり、このマイクロプロセッサが16ピントならば、
各2進コード、即ちこのマイクロプロセッサが発生した
各バス・状態は16ビツトの2進数である。しかし、マ
イクロプロセッサが発生する可能性のある2進数は21
@個なので、216個の可能な命令を逆アセンブルする
必要がある。
When i + j = n, 2rL>2' +2j In the embodiment of the present invention, if the assembler is a microprocessor and this microprocessor has 16 pins, then
Each binary code, or each bus state generated by this microprocessor, is a 16-bit binary number. However, the binary number that a microprocessor can generate is 21
Since there are 216 possible instructions, 216 possible instructions need to be disassembled.

従来は逆アセンブラをメモリ内に作成し、かつ蓄積した
テーブルを必要とした。上述の例では、このテーブルの
第1列は、(16ビツト・マイクロプロセッサ用の)2
16の2進数のリストで構成され、第2列は夫々対応す
る216個の命令リストで構成された。これら必要とす
る多くの項目により、このテーブルを作成するのは不可
能でないとしても困難であった。また、従来の逆アセン
ブリは、各種マイクロプロセッサ専用の逆アセンブリR
OMをロジック・アナライザ内に設置する必要があった
Previously, a disassembler was created in memory and required a stored table. In the example above, the first column of this table is 2 (for a 16-bit microprocessor).
It consisted of a list of 16 binary numbers, and the second column consisted of a corresponding list of 216 instructions. The large number of items required made this table difficult, if not impossible, to create. In addition, conventional disassembly is a disassembly R dedicated to various microprocessors.
It was necessary to install the OM inside the logic analyzer.

一方、本発明の逆アセンブラもまた、上述のテーブルを
作成する必要がある。しかし、メモリ内に作成し、かつ
蓄積したごのテーブルは、デシシロン・ツリーの形式で
構成されており、211i個の項目リストを必要とする
1個のテーブルの代わりに、ツリーの形態で互いにリン
クされた2個以上のテーブルを用いている。この例にお
いては、互いにリンクした2個のテーブルを用い、各テ
ーブルは第1及び第2列に28個の項目を有している。
On the other hand, the disassembler of the present invention also needs to create the above-mentioned table. However, each table created and stored in memory is organized in the form of a decisilon tree, and instead of one table requiring 211i item lists, they are linked together in the form of a tree. Two or more tables are used. This example uses two tables linked together, each table having 28 entries in the first and second columns.

2111 >2@+ 2flなので、従来の単一テーブ
ルに必要な項目数よりも少ない項目により、本発明によ
る2個のテーブルの第1及び第2列の各々を作成できる
。同様に、デシジョン・ツリーの形態でJl、いにリン
クした4個のテーブルを用いてもよい。
Since 2111 > 2@+ 2fl, each of the first and second columns of the two tables according to the present invention can be created with fewer entries than the number of entries required for a conventional single table. Similarly, four tables linked to Jl in the form of a decision tree may be used.

この場合、各テーブルは第1及び第2列に241固の項
目を必要とする。216 > 24 +24 +24 
+24なので、4個のデシジョン・ツリー・テーブルを
作成するのは、従来の単一テーブルを作成するよりも一
層容易である。第2図は本発明を用いたデシジョン・ツ
リーの概念の一例を示している。
In this case, each table requires 241 entries in the first and second columns. 216 > 24 +24 +24
+24, so creating four decision tree tables is easier than creating a traditional single table. FIG. 2 shows an example of a decision tree concept using the present invention.

第2図において、複数のテーブルがデシジョン・ツリー
の形態で互いにリンクしている。次に、第3八図及び第
3B図を参照して、各テーブルの構成を説明する。実行
可能なコードを対応する一連のアセンブリ言語二一モニ
ックに逆アセンブルする本発明の逆アセンブラにより、
まずテーブルlを参照し、次にテーブル2又はテーブル
3のどちらを参照するかを判断する。テーブル2を参照
した場合、次にテーブル4又はテーブル5のどちらを参
照するかを更に判断する。テーブル5を参照すると、次
にテーブル10又はテーブル11のどちらを参照するか
更に判断する。テーブル1,2゜5及びl’lの組合せ
で参照すると、マイクロプロセッサから出力され、本発
明の逆アセンブラにより取込まれた1つの2進コード(
即ち、16ビソト2進コード)を、対応するアセンブリ
言語二一モニックに逆アセンブルする。16ビソト2進
コードを逆アセンブルしなければならない場合、テーブ
ル1.2.5及び11の各列に24個の項目を必要とし
て、この16ビツト2進コードを対応するアセンブリ営
梧二−モニソクに逆アセンブルする。従来の逆アセンブ
ラのように単一のテーブルの各列に2 ” 1lldの
項目を設ける場合よりも、これらテーブルの各列に24
個の項目を設ける方が一層容易である。
In FIG. 2, multiple tables are linked together in the form of a decision tree. Next, the configuration of each table will be explained with reference to FIG. 38 and FIG. 3B. The disassembler of the present invention disassembles executable code into a set of corresponding assembly language monomonics.
First, table 1 is referred to, and then it is determined whether table 2 or table 3 is to be referred to. If table 2 is referred to, it is further determined whether table 4 or table 5 is to be referred to next. After referring to table 5, it is further determined whether to refer to table 10 or table 11 next. Referring to the combination of Tables 1, 2゜5 and l'l, one binary code (
16-bisoto binary code) into the corresponding assembly language bimonics. If a 16-bit binary code has to be disassembled, we need 24 entries in each column of Tables 1.2.5 and 11 to convert this 16-bit binary code into the corresponding assembly code. Disassemble. Each column of these tables has 24
It is easier to provide 2 items.

第3A図及び第3B図は、本発明の逆アセンブラによる
陰極線管の表示を示す。これら表示は、−上述のテーブ
ルのデシジョン・ツリー構造の一例である。第3A図は
r 0PCODCU 1  (オペコード01) Jの
テーブルを示している。このr 0PCODE ff 
I Jテーブルの第1列(lotは8ビツトの2進コー
ドである。
3A and 3B show a display of a cathode ray tube by the disassembler of the present invention. These representations are: - An example of the decision tree structure of the table described above. FIG. 3A shows a table for r 0PCODCU 1 (opcode 01) J. This r 0PCODE ff
The first column of the IJ table (lot is an 8-bit binary code.

第2列(12)は他のテーブルを参照するためのl’c
all(コール)」列である。第3列(I4)は命令に
関する2進コードの一部のrDIsPLAY  (表示
)列である。第3A図において、第1列α〔は例えば2
進コードr 0100OXXXJ テアル。コ(7) 
:U −)’ 内、2進数1−01000 Jは増分(
ING)命令である。
The second column (12) is l'c for referencing other tables.
"all (call)" column. The third column (I4) is the rDIsPLAY (display) column of part of the binary code for the instruction. In FIG. 3A, the first column α [is, for example, 2
Hex code r 0100OXXXJ Teal. Ko (7)
:U -)', binary number 1-01000 J is increment (
ING) command.

また、下位3桁の属性ビット「×χX」は、このテーブ
ルがサーチされたときに無視され、これら値に関係な(
、列(12)で決定されrRBG 16Jと呼ばれるテ
ーブルに進む。このテーブルI−RE!G 16Jを第
3B図に示す。3桁の属性ビットr’XXX Jが1’
000Jならば、それはレジスタ・アイデンティファイ
ヤ(識別子)rAXJに対応する。よって、1’ 0P
CODE RI Jテーブル(第3A図)をl’RIE
G 16Jテーブル(第3B図)にデシジョン・ツリー
形式でリンクすることにより、2進コードl’ 010
0OOOOJが増分レジスタAX(INCAχ)命令に
対応すると判断する。
Also, the lower three digit attribute bits "×χX" are ignored when this table is searched, and the (
, proceed to the table determined in column (12) and called rRBG 16J. This table I-RE! G 16J is shown in Figure 3B. 3-digit attribute bit r'XXX J is 1'
If it is 000J, it corresponds to register identifier rAXJ. Therefore, 1'0P
l'RIE CODE RI J table (Figure 3A)
By linking to the G16J table (Figure 3B) in a decision tree format, the binary code l' 010
It is determined that 0OOOOJ corresponds to the increment register AX (INCAχ) instruction.

第3A図及び第3B図のテーブルは独特な方法でフォー
マット化しており、2進コード(第3A図)の項目及び
それに対応する命令を簡略化している。上述の如く、マ
イクロプロセッサは各命令を実行し、各命令の2進コー
ドを発生ずる。(一連のアセンブリ百語命令を実行し、
デバッグすべきソフトウェアにする)マイクロプロセッ
サの各製造業者はユーザ・ドキュメンテーションを発行
しており、これによればマイクロプロセッサが発生した
2進コードは各命令に対応する。第3A図及び第3B図
に示したテーブルのフォーマットは、マイクロプロセッ
サの製造業者が発行したユーザ・ドキュメンテーション
のフォーマットに直接対応するように作成し′ζいる。
The tables of FIGS. 3A and 3B are formatted in a unique manner to simplify the binary code (FIG. 3A) entries and their corresponding instructions. As mentioned above, the microprocessor executes each instruction and generates a binary code for each instruction. (executes a series of assembly hundred word instructions,
Each microprocessor manufacturer (which makes the software to be debugged) publishes user documentation in which the binary code generated by the microprocessor corresponds to each instruction. The format of the tables shown in FIGS. 3A and 3B is designed to correspond directly to the format of user documentation published by microprocessor manufacturers.

このようにフォーマットが一致しているので、上述のテ
ーブルを作成する際に、多くの2進コードを本発明の逆
アセンブラに入力したり、関連する対応命令を入力する
のが容易となる。
This matching format facilitates inputting many binary codes and associated corresponding instructions into the disassembler of the present invention when creating the table described above.

第4図はロジック・アナライザの逆アセンブルの取込み
メモリ内に蓄積された多くの2進コードを示している。
FIG. 4 shows a number of binary codes stored in the logic analyzer's disassembled acquisition memory.

これらコードはマイクロプロセッサが発生したものであ
り、このマイクロプロセッサが実行した多くの命令に対
応する。本発明によるし1シツク・アナライザ(取込み
装置)がマイクロプロセッサからの2進コードを取込み
、取込みメモリに蓄積する。これら2進コードは、本発
明のロジック・アナライザの逆アセンブラによる逆メセ
ンブリ処理を問題とするものではなく、また2進コード
に対応するアセンブリ言語二一モニックに関連するもの
でもないごとに注意されたい。
These codes originate from a microprocessor and correspond to the many instructions that the microprocessor executed. A one-six analyzer (capture device) according to the present invention captures binary codes from a microprocessor and stores them in an capture memory. Please note that these binary codes are not subject to disassembly processing by the disassembler of the logic analyzer of the present invention, nor are they related to the assembly language bimonics corresponding to the binary codes. .

マイクロプロセッサはユーザ回路の一部である。The microprocessor is part of the user circuit.

このユーザ回路は、一連のアセンブリ言語命令を蓄積す
る第1メモリ (例えばROM)と、この第1のメモリ
に蓄積した命令を実行するときにマイクロプロセッサが
利用するデータ情報を蓄積した第2メモリ (例えばラ
ンダム・アクセス・メモリ、即ちRAM)とを含んでい
る。第4図において、情報(I6)の第1列は、アセン
ブリ言語命令を蓄積するユーザ回路の第1メモリ内のア
ドレスを示すアドレス・データを含むと共に、データ情
報を蓄積するユーザ回路の第2メモリ内のアドレスをボ
ず”アドレス・データを含んでいる。第2列(18)は
、複数のタグ・ビットから構成されており、これらタグ
・ビットは、マイクロプロセッサが実行可能なコードの
一部として発生し、第1メモリ内に蓄積されたアセンブ
リ言語命令を表わす2進コードと、このマイクロプロセ
ッサが発生し、第2メモリ内に蓄積されたデータ情報を
表わす2進コードとを区別する。第3列(20)は、第
1列(16)のアドレスに対応し、16進法で表わされ
るアセンブリ言語命令及びデータ情報から構成する。し
かし、第3列の命令及びデータ情報は、16進文字で表
わされているため、解読して理解するのは容易ではない
ことに注意されたい。
This user circuit includes a first memory (e.g., ROM) that stores a series of assembly language instructions, and a second memory (e.g., ROM) that stores data information used by the microprocessor when executing the instructions stored in this first memory. For example, random access memory (RAM). In FIG. 4, a first column of information (I6) includes address data indicating an address in a first memory of the user circuit that stores assembly language instructions and a second memory of the user circuit that stores data information. The second column (18) consists of a number of tag bits, which are part of the code executable by the microprocessor. A distinction is made between binary codes generated by the microprocessor and representing assembly language instructions stored in a first memory, and binary codes generated by the microprocessor and representing data information stored in a second memory. The third column (20) corresponds to the address in the first column (16) and consists of assembly language instructions and data information expressed in hexadecimal notation.However, the instructions and data information in the third column correspond to the addresses in the first column (16). Note that it is not easy to decipher and understand because it is expressed as .

ユーザ回路の第1メモリ内のアセンブリ言語命令をデバ
ッグするには、第413!fIの列(20)の情報を容
易に読取れること、即ち、マイクロプロセッサが発生し
、ロジック・アナライザの逆′1センブラの取込みメモ
リに蓄積された命令及びデータ情報を容易に判断し、解
析でき、これら命令及びデータ情報がユーザ回路の第1
メモリ内に蓄積された一連のアセンブリ言語命令を正確
に反映する程度を判断することが必要である。
To debug the assembly language instructions in the first memory of the user circuit, the 413th! The information in column (20) of fI can be easily read, i.e., the microprocessor can easily determine and analyze the instruction and data information generated and stored in the acquisition memory of the inverse assembler of the logic analyzer. , these commands and data information are the first
It is necessary to determine the extent to which it accurately reflects the sequence of assembly language instructions stored in memory.

しかし、上述した如く、第4図に示した情報を第5図に
示す情報に変換するには、情報を逆アセンブラのメモリ
 (RAM)に人力して蓄積して上述のテーブルを作成
しなければならない。このテーブルは、マイクロプロセ
ッサで発生可能な第1列の多くの2進コードと、第2列
の対応する命令又はアセンブリ言a吾二一モニックとか
ら構成される。第4図の第3列(20)内の2進又は好
適には16進のアセンブリ言語命令をインデックスとし
てテーブルの第1列に配置し、対応するアセンブリに紐
二−モニックをテーブルの第2列に配置する。
However, as mentioned above, in order to convert the information shown in Figure 4 to the information shown in Figure 5, the information must be manually stored in the disassembler's memory (RAM) and the table described above must be created. No. This table consists of a number of binary codes in the first column that can be generated by the microprocessor and the corresponding instructions or assembly words in the second column. Place the binary or preferably hexadecimal assembly language instruction in the third column (20) of FIG. Place it in

この配置したアセンブリ言緒二−モニックを用いて、第
5図にネオ如きロジック・アナライザの表示を行なう。
Using this arranged assembly mnemonic, a logic analyzer such as Neo is displayed in FIG.

しかし、上述の如く、ユーザ回路の8ビット以上のマイ
クロプロセッサを従来のロジック・アナライザの逆アセ
ンブラと結合して用いると、テーブルを作成するタスク
は不可能でないとしζも、卵重に困難である。よっ°C
1本発明により、ロジック・アナライザのRAM内に蓄
積したテーブルのデシジョン・ツリー構造を第2図。
However, as mentioned above, when an 8-bit or higher microprocessor in the user circuit is used in combination with a conventional logic analyzer disassembler, the task of creating tables is not impossible, but extremely difficult. . Yo °C
1. FIG. 2 shows the decision tree structure of the table stored in the RAM of the logic analyzer according to the present invention.

第3A図及び第3B図にボず如く用いることにより、テ
ーブルを作成するタスクを簡略化する。
3A and 3B simplifies the task of creating tables.

第6図は本発明によるロジック・アナライザの逆アセン
ブラのシステム・ブロック図である。
FIG. 6 is a system block diagram of a logic analyzer disassembler according to the present invention.

−L−f回路(26)は、システム・バスにt!Hすれ
た第1メモリ(代表的にはROM)(26A)を有し、
このメモリはデバッグされるファームウェア/ソフトウ
ェアを蓄積している。ユーザ回路(26)はまた、シス
テム・バスに接続したマイクロプロセッサ(26B)を
有し、このマイクロプロセッサはファームウェア/ソフ
トウェアを実行し、実行可能なコード、即ち、この実行
に応じた多くの2進コードを発生ずる。更に、ユーザ回
路(26)は、システム・バスに接続した第2メモリ 
(代表的ニはRAM)(26G)を具えている。マイク
ロプロセッサ(26B)は更にパーソナリティ・モジュ
ール(2日)に接続する。このパーソナリティ・モジュ
ールは、マイクロプロセッサ(26B )からの多(の
2進コードを受け、第1メモリ (26A )に蓄積さ
れており、かつ受信したアセンブリ首語命令と、第2メ
モリ(26C)に蓄積されており、かつ受信したデータ
情報とを区別する。またパーソナリティ・モジュール(
28)は、1つのタグ・ビットをマイクロプロセッサ(
26B )から受信したアセンブリ言語命令に割当°ζ
ると共に、他のタグ・ビットをマイクロプロセッサから
受信したデータ情報に割当てる。第6図に示すパーソナ
リティ・モジュール(2B)の機能を果す代表的なパー
ソナリティ・モジュールは、本願出願人のテクトロニソ
クス・インコーホレイテッドが製造した製品番号PMI
χX (例えば6809型マイクロプロセツサ用にはP
MIII )のモジュールである。このパーソナリティ
・モジュール(2日)の構造の詳細は1981年10月
19日に出IMした米国特許出願第312466号(特
開昭58−80743%ニ対応) (7)明IIIIM
ニ開示シテある。パーソナリティ・モジュール(28)
の機能を果す他のモジュールとしては、テクトロニック
ス・インコーホレイテッドが認めた標準部品番号P旧0
9−MC68000がある。
-Lf circuit (26) connects t! to the system bus. It has a first memory (typically ROM) (26A),
This memory stores the firmware/software to be debugged. The user circuit (26) also has a microprocessor (26B) connected to the system bus, which executes firmware/software and which executes executable code, i.e. a number of binary Generates code. Additionally, the user circuit (26) includes a second memory connected to the system bus.
(Representative 2 is RAM) (26G). The microprocessor (26B) further connects to the personality module (2). This personality module receives a binary code from a microprocessor (26B), stored in a first memory (26A), and receives a received assembly command instruction and stores it in a second memory (26C). Distinguish between stored and received data information.Also, the personality module (
28) allows one tag bit to be processed by a microprocessor (
26B ) to the assembly language instruction received from °ζ
and assigns other tag bits to data information received from the microprocessor. A typical personality module that performs the function of the personality module (2B) shown in FIG.
χX (for example, P for 6809 type microprocessor)
MIII) module. The details of the structure of this personality module (2 days) are disclosed in U.S. Patent Application No. 312466 (corresponding to Japanese Patent Application Laid-open No. 58-80743) filed on October 19, 1981. (7) Mei IIIM
There are two disclosures. Personality module (28)
Other modules that perform this function include Tektronix Incorporated standard part number P00.
There is 9-MC68000.

パーソナリティ、・モジュール(28)に接続したジュ
ール(28)からアセンブリ言語命令、データ情報、及
び対応するタグ・ビットを受ける。データ取込みプロー
ブ・ボン)”A(30)の他端を取込みメモリ (4o
)に接続する。また、他のデータ取込みプローブ・ボン
ド、即ちプローブ・ボッドB(34)、プローブ・ボッ
ドC(36)及びプローブ・ボッドD(3B)も、デー
タ・バス形式で取込みメモリ・(40)に接続する。プ
ローブ・ボンド(3o)、(34)、(36)及び(3
8)の各々は、8個のプローブ・チップを有する。これ
らプローブ・チップ線、パーソナリティ・モジュール(
28)又はユーザ回路(26)内のマイクロプロセッサ
(26B)の如き被試験装置の端子からの複数のロジッ
ク信号(多くの2進コードを表わす)を取込む。これら
プローブ・ボンドは複数のロジック信号を取込みメモリ
(40)に転送する。取込めメモリ (4o)はプロー
ブ・ボンド(3o)、(34)、(36)及び(3日)
の各々に対応する領域に分割され”ζいる。
Personality: - receives assembly language instructions, data information, and corresponding tag bits from a module (28) connected to a module (28). Insert the other end of the data acquisition probe (bond) A (30) into the memory (4o
). Other data acquisition probe bonds, namely Probe Bod B (34), Probe Bod C (36) and Probe Bod D (3B), are also connected to the acquisition memory (40) in the form of a data bus. . Probe bonds (3o), (34), (36) and (3
8) each has 8 probe tips. These probe tip wires, personality module (
28) or a plurality of logic signals (representing a number of binary codes) from the terminals of a device under test, such as a microprocessor (26B) in a user circuit (26). These probe bonds transfer multiple logic signals to the acquisition memory (40). Acquisition memory (4o) is probe bond (3o), (34), (36) and (3 days)
The area is divided into ``ζ'' areas corresponding to each area.

メモリ・アドレス・レジスタ(42)を取込めメモリ 
(40)に接続し、このメモリの特定の場所をアドレス
指定する。メモリ・アドレス・レジスタ(42)が定め
た取込みメモリ (40)のアドレス指定された場所に
、プローブ・ボンドからのロジック信号をvh積する。
Load the memory address register (42) into the memory
(40) to address a specific location in this memory. The logic signal from the probe bond is vh multiplied into the addressed location of the acquisition memory (40) defined by the memory address register (42).

プローブ・ボンドA (30)が取込んだロジック信号
を、取込めメモリ (40)のプローブ・ボンドA用の
領域に蓄積する。同様に、プローブ・ボッド”(34)
、(36)及び(38)からのロジック信号を、メモリ
・′1ドレス・レジスタ(42)により指定される取込
みメモリ (40)のプローブ・ボッドB、C及びD用
の領域に夫々蓄積する。
The logic signal acquired by probe bond A (30) is stored in the area for probe bond A of acquisition memory (40). Similarly, “Probe Bod” (34)
.

取込みプローブ・ボンドの各々を更にワード認識回路(
44)の人力に接続する。このワード認識回路(44)
は取込みメモリ(40)が取込のプローブからの所望ワ
ードを蓄積したか否かを検出し、この検出に応答して、
ロジック・アナライザの逆アセンブラのメイン・バスに
出力信号を供給する。
Each acquisition probe bond is further connected to a word recognition circuit (
44) Connect to human power. This word recognition circuit (44)
detects whether the acquisition memory (40) has accumulated the desired word from the acquisition probe and, in response to this detection,
Provides the output signal to the main bus of the logic analyzer's disassembler.

この出力信号は、データ、アドレス及びコントロール情
報を含んでいる。上述の所望ワードは、データの取込め
開始前に、ユーザが表示上のメニュにより入力したワー
ドである。ワード認識回路(44)をカウンタ(46)
に接続する。ワード認識回路(44)が取込みプローブ
・ポットからの所望ワードを受けると、カウンタ(46
)を駆動する。
This output signal includes data, address and control information. The above-mentioned desired word is a word input by the user using the menu on the display before starting data acquisition. The word recognition circuit (44) is converted into a counter (46)
Connect to. When the word recognition circuit (44) receives the desired word from the acquisition probe pot, the counter (46)
) to drive.

クロック回路(48)もカウンタ(46)を駆動し、こ
のカウンタ(46)が所定数だけ計数するようにする。
The clock circuit (48) also drives the counter (46) so that the counter (46) counts a predetermined number.

カウンタ(46)をメモリ・アドレス・レジスタ(42
)に接続し、このカウンタの計数値が所定数に達したと
き、メモリ・アドレス・レジスタ(42)に信号を送る
。メモリ・アドレス・レジスタ(42)がカウンタ(4
6)からの信号を受けると、このメモリ・アドレス・レ
ジスタによるアドレス[旨定機能を停止する。よって、
取込みプローブからのロジック信号を取込みメモリ (
40)に更に蓄積するのを停止する。
counter (46) to memory address register (42)
), and when the count value of this counter reaches a predetermined number, it sends a signal to the memory address register (42). The memory address register (42) is connected to the counter (4
6), the address setting function by this memory address register is stopped. Therefore,
Acquires the logic signal from the acquisition probe and stores it in memory (
40) to stop further accumulation.

制御器インタフェース/レジスタ回路(50)を取込み
メモリ (40)の出力に接続し、続出しモードにおい
て、取込みメモリ (40)から蓄積データを受ける。
A controller interface/register circuit (50) is connected to the output of the acquisition memory (40) to receive stored data from the acquisition memory (40) in continuous mode.

インタフェース/レジスフ回路(50)を本発明の逆ア
センブラのメイン・バス(52)に更に接続し、蓄積デ
ータをこのメイン・バスに供給する。更に、インタフェ
ース/レジスタ回路(50)をメモリ・アドレス・レジ
スタ(42) 、取込のメモリ (40)及びワード認
識回路(44)に接続する。よって、インタフェース/
レジスタ回路(50)がメイン・バス(52)からの制
御データを受けると、この回路(50)は、取込みメモ
リ (40)の蓄積/続出しモードを制御し、取込みメ
モリ(40)のアドレス指定を行なうメモリ・アドレス
・レジスタ(42)のアドレス変化速度を制御し、ワー
ド認識回路(44)が検出する所望ワードを制御する。
An interface/registration circuit (50) is further connected to the main bus (52) of the inventive disassembler and supplies stored data to this main bus. Further, the interface/register circuit (50) is connected to the memory address register (42), the acquisition memory (40) and the word recognition circuit (44). Therefore, the interface/
When the register circuit (50) receives control data from the main bus (52), this circuit (50) controls the accumulation/flooding mode of the acquisition memory (40) and the addressing of the acquisition memory (40). The address change speed of the memory address register (42) that performs this is controlled, and the desired word detected by the word recognition circuit (44) is controlled.

マイクロプロセッサ(54)、キーボード(56)、R
AM (58) 、ROM (60)及び表示制御器(
62)をロジック・アナライザの逆アセンブラのメイン
・バス(52)に接続する。
Microprocessor (54), keyboard (56), R
AM (58), ROM (60) and display controller (
62) to the main bus (52) of the disassembler of the logic analyzer.

マイクロプロセッサ(54)は中央処理装置である。こ
のマイクロプロセッサ(54)は、キーボード(56)
から受けた命令及びROM(60)に蓄積されたファー
ムウェアに応じて、制御器インタフェース/レジスタ回
路(50)を介して受けた取込みメモリ (40)から
の情報を処理し、この処理に応じて制御信号を発生する
。RAM(58)はデシジョン・ツリー形式の上述のテ
ーブルを蓄積して′いる。即ち、キーボー′ド(56)
、により、ロジック・アナライザの逆アセンブ、うのR
AM(58)に2進コード、及びそれに関連する命令を
人;Iコシ、蓄積する。ROM(60)に蓄積されたフ
ァームウェアにより、マイクロプロセ・y”t (54
)はキーボード(56)が入力した2進コード屋びそれ
に関連し命令に応じて、デシジジイ・ツリー形式のテー
ブルを作成し、RAM(58)に蓄積する。表示制御器
(62)はROM(60)からの命令及びマイクロプロ
セッサ(54)からの処理命令に応じて動作し、ロジッ
ク・アナライザの逆アセンブラの表示モニタ(64)に
表示を行なう。表示モニタ(64)上の表示は、この表
示モニタ(64)及び表示制御器(62)間に接続され
た文字発生器(66)の助りを得て行なう。
The microprocessor (54) is the central processing unit. This microprocessor (54) is connected to the keyboard (56)
The information from the acquisition memory (40) received via the controller interface/register circuit (50) is processed according to the instructions received from the controller and the firmware stored in the ROM (60), and the control is performed according to this processing. Generate a signal. The RAM (58) stores the above-mentioned table in the form of a decision tree. That is, the keyboard (56)
, the disassembly of the logic analyzer, UnoR
The binary code and its related instructions are stored in the AM (58). The firmware stored in the ROM (60) allows the microprocessor y”t (54
) creates a table in the form of a decisidy tree according to the binary code inputted by the keyboard (56) and the associated commands, and stores it in the RAM (58). The display controller (62) operates in response to instructions from the ROM (60) and processing instructions from the microprocessor (54), and displays on the display monitor (64) of the disassembler of the logic analyzer. The display on the display monitor (64) takes place with the aid of a character generator (66) connected between the display monitor (64) and the display controller (62).

表示モニタ(64)は第3A図及び第3B図に示す表示
を行なう。ユーザ回路内のマイクロプロセッサ(26B
)のユーザ・ドキュメンテイションからの2進コード及
び関連した命令をロジック・アナライザの逆アセンブラ
にキーボード(56)を介して転送すると、この逆アセ
ンブラのユーザはモニタ(64)の表示を見ることがで
きる。これら2進コード及び命令は、ユーザ回路(26
)内のマイク1:Jプロセッサ(26B >が発生可能
な全部の2進コード及び関連するアセンブリ言語二一モ
ニソクを表わす。
The display monitor (64) displays the displays shown in FIGS. 3A and 3B. Microprocessor in user circuit (26B
) and the associated instructions from the user documentation of the logic analyzer are transferred to the disassembler of the logic analyzer via the keyboard (56), and the user of this disassembler can see the display on the monitor (64). . These binary codes and instructions are stored in the user circuit (26
Microphone 1 in ) represents all the binary codes that can be generated by the J processor (26B) and the associated assembly language code.

第6図にボした本発明によるロジック・アナライザの逆
アセンブラのシステム・ブロック図の動作を、第2図、
第3A図、第3B図、第4図及び第5図と関連させて、
次に説明する。
The operation of the system block diagram of the logic analyzer disassembler according to the present invention shown in FIG. 6 is illustrated in FIG.
In connection with FIGS. 3A, 3B, 4 and 5,
This will be explained next.

1:Iシック・アナライザの逆アセンブラのユーザは、
ユーザ回路(26)内のマイクロプロセッサ(26B)
のユーザ・ドユメンテイションをまず参照する。このユ
ーザ・トキュメンテイションを用い°ζテーブルを作成
し、デシジョン・ツリー形式でRA、M (5B)に蓄
積する。なお、情報はキーボード(56)により入力す
る。ユーザは、本発明によるロジック・アナライザの逆
アセンブラにより、表示モニタ(64)に第3A図に示
すような表示を行なう。ユーザ・ドキュメンテイション
、モニタ(64)の表示、及びキーボード(56)を用
い′ζ、ユーザは第3A図に示す情報を完成させる。な
お、この情報は、第1列aωの2進コード、第2列(1
2)の他の参照テーブルの名前、第3列(14)の2進
コードに関連する命令を含んでいる。次に、ユーザはロ
ジック・アナライザの逆アセンブラがモニタ(64)・
に第3B図に示す如き表示を9テなうようにし、そこに
表示される情報を完成させる。即ち、ユーザ回路(26
)内のマイクロプロセッサ(26B )の製造業者が作
成したユーザ・ドキュメンテイションを参照して、ユー
ザはキーボード(56)により、マイクロプロセッサ(
26B>が発生する可能性のある多くの2進コードを入
力する。
1: Users of the I-thick analyzer disassembler should:
Microprocessor (26B) in user circuit (26)
First refer to the user documentation. A °ζ table is created using this user documentation and stored in RA,M (5B) in a decision tree format. Note that the information is input using the keyboard (56). The user produces a display as shown in FIG. 3A on the display monitor (64) using the disassembler of the logic analyzer according to the present invention. Using the user documentation, the display on the monitor (64), and the keyboard (56), the user completes the information shown in FIG. 3A. Note that this information is the binary code of the first column aω, the second column (1
2), the name of the other reference table, containing the instruction associated with the binary code in the third column (14). Next, the user can monitor (64) the disassembler of the logic analyzer.
Then, create a display as shown in FIG. 3B nine times to complete the information displayed there. That is, the user circuit (26
) in the microprocessor (26B), the user uses the keyboard (56) to select the microprocessor (26B).
26B> can occur, enter a number of binary codes.

ROM(60)に蓄積したファームウェアによる命令に
応じて、マイクロプロセソ’+(54)は、第3A図及
び第3B図に示す如きテーブルをRAM(58)に蓄積
する。これらテーブルは、キーボー、ト’ (56)に
より人力された2進コード及び関連する二一モニソクを
含んでいる。マイクロプロセッサ(54)は第2図に示
すデシジョン・ツリーの形式で、テーブルをRAM(5
8)に蓄積する。よって、RAM(5B)に蓄積するテ
ーブルを作成するのに、ロジック・アナライザの逆アセ
ンブラが必要とする項目数は少ない。
In response to instructions from the firmware stored in the ROM (60), the microprocessor'+ (54) stores tables such as those shown in FIGS. 3A and 3B in the RAM (58). These tables contain the binary codes and associated digits entered manually by the keyboard (56). The microprocessor (54) stores the table in the RAM (54) in the form of a decision tree shown in FIG.
8) Accumulate. Therefore, the number of items required by the disassembler of the logic analyzer is small to create a table to be stored in the RAM (5B).

第2図に示すデシジョン・ツリーの形式でテーブルをR
AM(58)に蓄積すると、本発明の逆アセンブラは、
ユーザ回路(26)内のマイクロプロセッサ(26B 
)からの多くの2進コードを取込む準備が完了する。ユ
ーザ回路(26)のROM(26A)にに積された一連
のアセンブリ言語命令を表わす2進情報を解析し、デバ
ッグする。マイクロプロセッサ(26B )はROM 
(28M ) ニ蓄積された命令を実行し、この実行に
応じ°ζ多くの2進コードを発生する。パーソナリティ
・モジュール(28)ば多くの2進コードを受け、1つ
のタグ・ビットを多くの2進コート内に含まれるアセン
ブリ言語命令に割当′ζ、他のタグ・ビットをこれら2
進コード内に含まれるデータ情報に割当てる。データ取
込みプローブ・ボッドA (30)は多くの2進コーr
及び関連したタグ・ビットを取込み、これら2進コード
及びタグ・ビットをロジック・アナライザの逆アセンブ
ラの取込みメモリ (40)内に蓄積する。クロック回
路(48)からの出刃信号に応して、メモリ・アドレス
・レジスタ(42)は、プローブ・ポンドA (30)
に対応する取込のメモリ(40)内の場所をアドレス指
定する。ワード認識回路(44)が取込みプローブから
所望ワードを受けると、カウンタ(46)が出方信号を
発生し、この出力信号によりメモリ・アドレス・レジス
タ(42)を制御する。よって、メモリ・アトルス・レ
ジスタ(42)はそのアドレス指定機能を停止するので
、取込みメモリ (4o)はプローブ・ポット”A(3
0)からの2進コード及びタグ・ビットの新たな蓄積を
停止する。取込のメモリ (4o)ば第4図に示すフォ
ーマットの情報を含んでいる。
Create a table in the form of a decision tree shown in Figure 2.
When accumulated in AM (58), the inventive disassembler:
Microprocessor (26B) in the user circuit (26)
) is now ready to import many binary codes. Binary information representing a series of assembly language instructions stored in the ROM (26A) of the user circuit (26) is analyzed and debugged. Microprocessor (26B) is ROM
(28M) Executes the stored instructions and generates a large number of binary codes in accordance with the execution. The personality module (28) receives a number of binary codes, assigns one tag bit to an assembly language instruction contained within the number of binary codes, and assigns other tag bits to these two
Assign to the data information contained within the hex code. Data Acquisition Probe Bod A (30) has many binary codes.
and associated tag bits and stores the binary code and tag bits in the logic analyzer disassembler's acquisition memory (40). In response to a signal from the clock circuit (48), the memory address register (42) registers the probe pound A (30).
Addresses a location in the memory (40) of the acquisition corresponding to. When the word recognition circuit (44) receives the desired word from the acquisition probe, a counter (46) generates an output signal which controls the memory address register (42). Therefore, the memory atlas register (42) ceases its addressing function and the acquisition memory (4o) is placed in probe pot “A(3)”.
Stop new accumulation of binary code and tag bits from 0). The capture memory (4o) contains information in the format shown in FIG.

上述の如く、RAM(5B)は第2図に示したデシン9
ン・ツリー形式のテーブルを含んでいる。
As mentioned above, the RAM (5B) is the Decine 9 shown in Figure 2.
Contains a table in tree format.

テーブルのフォーマットの一例は第3A図及び第3B図
に示したフォーマットのようなものである。
An example of a table format is as shown in FIGS. 3A and 3B.

マイクロプロセッサ(54)は取込めメモリ (40)
に蓄積された情報を受け、RAM(58)に蓄積された
テーブルを用いて、第4図の第3列(20)に示すアセ
ンブリ言語命令を第5図の第2列(24)に示す如き関
連したアセンブリ・ニーモニソクに変換する。また、マ
イクロプロセッサ(54)は、第5図に示す如き変換し
たアセンブリ言倍二−モニソクをRAM(5B)に蓄積
する。表示制御器(62)は、RAM(5B)から変換
したアセンブリ言語二−モニックを受け、文字発生器(
66)と共に、表示モニタ(64)に第5図に示す形式
でこれら二一モニソクを表示する。
The microprocessor (54) is loaded into the memory (40)
Using the table stored in the RAM (58), the assembly language command shown in the third column (20) of Fig. 4 is executed as shown in the second column (24) of Fig. 5. Convert to related assembly mnemonics. Further, the microprocessor (54) stores the converted assembly words as shown in FIG. 5 in the RAM (5B). The display controller (62) receives the assembly language mnemonics converted from the RAM (5B) and outputs them from the character generator (62).
66), these twenty-one monitors are displayed on the display monitor (64) in the format shown in FIG.

一上述の如く、ROM(60)に蓄積されたファームウ
ェアにより、マイクロプロセッサ(54)は第2図、第
3A図及び第3B図に示す如きデシジョン・ツリーの形
式でテーブルをRAM(58)に蓄積する。RAM(5
8)がこのテーブルを蓄積すると、取込みメモリ(40
)内に多くの2進コードの形式で蓄積された″rアセン
ブリ言語命令上述のテーブルにより対応する一連のアセ
ンブリ言語二−モニックに変換し、RAM(58)に蓄
積する。この変換処理に根本的に関係するROM(60
)内の符号化したファームウェアの特徴は以下のアルゴ
リズムである。
As mentioned above, the firmware stored in the ROM (60) causes the microprocessor (54) to store tables in the RAM (58) in the form of decision trees as shown in FIGS. 2, 3A, and 3B. do. RAM (5
8) accumulates this table, the acquisition memory (40
) is converted into a series of corresponding assembly language mnemonics according to the above-mentioned table and stored in the RAM (58). ROM related to (60
) The encoded firmware has the following algorithm.

テーブルは以下の如く構成される。The table is structured as follows.

テーブルの定義:テーブルの環境を説明する。Table definition: Describe the table environment.

内容:テーブル名はどのデー タ・チャンネルがテーブルに 入力されるか、テーブルにど の位の項目があるかを説明す る。Contents: What data is the table name? Ta channel on the table entered or added to the table. Explain whether there is an item of Ru.

0−255の項目 :各項目は「値」を含んでいる。Items 0-255: Each item includes a "value".

この「値」は「ビット・ケア」 のマスクを有する2進の値で ある。マスクの値が零(マス クがない)ならば、データを この値と比較する。マスクの 値が1(rXJを意味する; マスクがある)ならば、この ビットでは比較を行なわない。This "value" is "bit care" in binary values with a mask of be. If the mask value is zero (mass ), then the data Compare with this value. of the mask The value is 1 (means rXJ; mask), then this No comparison is made on bits.

次に各項目は0−9の17クシ ジン」を含んでいる。各アク ションは表示すべきオプショ ナル・ストリング、オプソヨ ナル・パラメータ・マスク、 及び二I−ルするオプショナル ・テーブルを含んでいる。Next, each item is 17 digits from 0 to 9. Contains gin. Each act option is the option that should be displayed. Naru String, Opsoyo null parameter mask, and two optional ・Contains a table.

、テーブルをu′P出すアルゴリズム テーブルの定義に応し、適当なデータを取込、lj(又
は基¥−)メモリから読出す。
, take in appropriate data and read it from the lj (or base\-) memory according to the definition of the algorithm table that outputs the table u'P.

次に第1項目を読出したデータと比較する。Next, the first item is compared with the read data.

各データ・ヒントを次のように処理する。Process each data tip as follows:

IFラントケア」マスクが零ならば、データ・ヒツトを
比較し、それらが一致すれば維持し、次のヒツトと比較
する。l−ドント・ケア」マスクが1ならば、このピッ
1−は自動的に一致する。全ビットが比較され、一致す
れば、これを使用する項目とする。
If the mask is zero, compare the data hits and if they match, keep and compare with the next hit. If the "l-don't care" mask is 1, this pip 1- will automatically match. All bits are compared, and if they match, this is the item to be used.

「不一致」が生じれば、テーブルの次の項1」において
比較が開始する。これは、一致゛Jるか項目が終わるま
で持続する。項目が終わったならば、このテーブルはコ
ールされない。
If a "mismatch" occurs, the comparison begins in the next item 1 in the table. This lasts until there is a match or the item ends. This table is not called once the item is finished.

一致すると、1項目」内の1−アクション」を判断しな
げればならない。
If there is a match, it is necessary to determine 1-action within 1 item.

可能性のあるlアクション」は以下の通りである。The possible l-actions are as follows.

ストリングの表示(例えばl MOVB、I )パラメ
ータ・ビットの除去(他のテーブルに行くべきヒント) 他のテーブルのコール この判14I「は1−アクション」が終了するまで続く
Indication of string (e.g. l MOVB, I ) Removal of parameter bits (hint to go to other table) Call of other table This continues until test 14I 1-Action is completed.

一致すると、現在のテーブルからコールされているテー
ブルに進む。コールされているテーブルがなければ、取
込みデータのこのライン用に逆アセンフリを行なう。
If there is a match, advance from the current table to the table being called. If no table is being called, perform disassembly for this line of captured data.

実行iJ能なコード内の命令及びデータ情報にタグ・ビ
ットを割当てる機能は、上述したパーソナリティ・′e
ジュール(28)の代りに、マイクし1プ1」セ、す(
54)と結合したROM(60)内の符号化された後処
理′ノ′ルゴリズムによっても行なえることが工里解で
き、よう。
The ability to assign tag bits to instructions and data information in executable code is a function of the personality
On behalf of Jules (28), mic 1p1"
It can be seen that this can also be done by encoded post-processing algorithms in the ROM (60) combined with the ROM (60).

発明のすJ果 −に述の如く、本発明はデシジョン・ツリー形式のテー
ブルを用いて逆アセンブリを行なうので、このテーブル
を作成するのに必要な2進コート及び関連したアセンフ
リ言語二一モニソクの数を大幅に減らせる。よって、種
々の逆アセンブラを容易に作成できると共に、テーブル
用の記憶容量を大幅に減らせる。
As described in the Achievements of the Invention section, since the present invention performs disassembly using a table in the form of a decision tree, the binary code and related assembly language code required to create this table are The number can be significantly reduced. Therefore, various disassemblers can be easily created, and the storage capacity for tables can be significantly reduced.

【図面の簡単な説明】[Brief explanation of drawings]

第1八図は高級言語又は゛rセンブラ言語を用いて一連
の実行可能なコードを発生ずるソフトウェア開発過程を
示す図、第1B図は実行可能なコートを一連のアセンブ
リ言語二一モニソクに変換してこの一7センブリ貧梧(
ユーザが作成したソフトウェア)をデバッグ及び解析す
るソフトウェア解析過程を不ず図、第2図は本発明に用
いるテーブルのデシジョン・ツリーの概念を承ず図、第
3八図及び第3B図は本発明を説明するための陰極線管
の表承図、第4図は本発明を説明するための2進コード
をボず図、第5図は本発明を説明するための逆アセンブ
リした二一モニソクを示す図、第6図は本発明のシステ
ム・ブロック図である。 (26)はユーザ回路、(28)はパーソナリティ・モ
ジュール、(30)はデータ取込みプローブ・ボットA
、(34)はデータ取込みプローブ・ボッI何3、(3
6)はデータ取込めプローブ・ボッドC1(3日)はデ
ータ取込みプローブ・ボッドD、(40)は取込みメモ
リ、(42)はメモリ・アドレス・レジスタ、(44)
はワード認識回路、(46)はカウンタ、(50)は制
御器インタフェース/レジスタ回路、(54)はマイク
ロプロセツサ、(56)はキーボード、(58)はRA
M、(60)はROMである。 DEFINE MNEMONIC5TABLE NAM
E :匝頑【口MODE :巨匡酊―戸口ρ 1  のIO+211XXX            
 DEC++++−−X TAB −=AAA  REG+6 2 の1の10XXX          PUSH+
++−+−−XTAB −−−−−^^^ 階名16 3886  MNEMONIC5
Figure 18 shows a software development process that uses a high-level language or assembler language to generate a set of executable code, and Figure 1B shows the process of converting the executable code into a set of assembly language code. Leverage 17 assembly poverty (
Figure 2 is a diagram illustrating the concept of a decision tree of a table used in the present invention, and Figures 38 and 3B are diagrams showing the process of debugging and analyzing software (software created by a user). FIG. 4 is a representation of a cathode ray tube to explain the present invention, FIG. 4 is a diagram without a binary code to explain the present invention, and FIG. 6 is a system block diagram of the present invention. (26) is the user circuit, (28) is the personality module, (30) is the data acquisition probe bot A
, (34) is the data acquisition probe board I3, (3
6) is the data acquisition probe bot C1 (3rd day) is the data acquisition probe bot D, (40) is the acquisition memory, (42) is the memory address register, (44)
is a word recognition circuit, (46) is a counter, (50) is a controller interface/register circuit, (54) is a microprocessor, (56) is a keyboard, and (58) is an RA.
M, (60) is a ROM. DEFINE MNEMONIC5TABLE NAM
E: Souken [mouth MODE: Kyojoku-Doguchi ρ 1's IO + 211XXX
DEC++++--X TAB -=AAA REG+6 2 no 1 10XXX PUSH+
++−+−−XTAB −−−−−^^^ Floor name 16 3886 MNEMONIC5

Claims (1)

【特許請求の範囲】[Claims] 2進コ一ド信号と対応するアセンブリ言語二一モニック
とのデシジョン・ツリー構造の対応表を用い、」二記2
進コード信号を上記アセンブリ賞梧ニーモニックに変換
することを特徴とする逆アセンブリ方法。
Using the correspondence table of the decision tree structure between the binary code signal and the corresponding assembly language binary monic,
A disassembly method characterized in that a hexadecimal code signal is converted into the above-mentioned assembly award mnemonic.
JP16907783A 1982-09-13 1983-09-13 Reverse assembly method Pending JPS5971546A (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
JPS5971546A true JPS5971546A (en) 1984-04-23

Family

ID=23652242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16907783A Pending JPS5971546A (en) 1982-09-13 1983-09-13 Reverse assembly method

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6330903A (en) * 1985-07-22 1988-02-09 ウエスチングハウス・エレクトリック・コーポレーション Preparation and execution of table driving logic for logical system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE182014T1 (en) * 1989-09-01 1999-07-15 Amdahl Corp PROGRAMMABLE COMPUTER WITH AUTOMATIC TRANSLATION BETWEEN SOURCE AND DESTINATION CODE WITH VERSION MONITORING
CN102521011B (en) * 2011-11-18 2014-08-06 华为技术有限公司 Simulator generation method and simulator generation device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6330903A (en) * 1985-07-22 1988-02-09 ウエスチングハウス・エレクトリック・コーポレーション Preparation and execution of table driving logic for logical system

Also Published As

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

Similar Documents

Publication Publication Date Title
US4694420A (en) Inverse assembly method and apparatus
KR100537258B1 (en) Debug aid device, program compiler device, storage medium storing computer-readable debugger program and storage medium storing program compiler program
KR102013657B1 (en) Apparatus for statically analyzing assembly code including assoxiated multi files
JPS5971546A (en) Reverse assembly method
KR940018743A (en) Method and system for dispatching and executing out of order instructions in superscalar processor system
CN114594962A (en) Machine code disassembling system, machine code disassembling method, computer device, and storage medium
CN114339470A (en) Data testing method and device based on satellite instruction, electronic equipment and medium
CN107180193B (en) Method and device for converting program code into data constraint
NL8001189A (en) DEVICE AND METHOD WITHIN A DIGITAL PROCESSING SYSTEM FOR PRE-COLLECTION OF BOTH OPERATION CODES AND OPERANDS.
KR20070035266A (en) Testing method for software
JPH1124940A (en) Emulation processing system
JP2653880B2 (en) Program content analyzer
JP2008003725A (en) Control program maintenance method, control program maintenance device, and control program maintenance program
JP3190377B2 (en) Function name converter
JP3352871B2 (en) Programmable controller
JPH05120055A (en) Test pattern generating device
JP3111496B2 (en) Processing method of multi-branch instruction
JP2629359B2 (en) Logic simulator
JPH05233314A (en) System for compilation processing and vocabulary dictionary processing in program execution
JPH04338841A (en) Debugger device
JPS63157244A (en) Debugging system for test program of peripheral device
JPH086814A (en) Instruction string extracting processor
JPS63163543A (en) Information processor
JPH0778085A (en) Program translating process system
JPH09297680A (en) Method and system for inputting parameter in application development environment