JP3495230B2 - Emulation processing method - Google Patents
Emulation processing methodInfo
- Publication number
- JP3495230B2 JP3495230B2 JP18716197A JP18716197A JP3495230B2 JP 3495230 B2 JP3495230 B2 JP 3495230B2 JP 18716197 A JP18716197 A JP 18716197A JP 18716197 A JP18716197 A JP 18716197A JP 3495230 B2 JP3495230 B2 JP 3495230B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- code
- target
- application
- program
- 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.)
- Expired - Fee Related
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明はソフトウェアのエミ
ュレーション処理方式に関し、特に任意のマイクロプロ
グラム向けに開発されたアプリケーションソフトウエア
を、異なるアーキテクチャを有する他のマイクロプロセ
ッサ上で実行させるソフトウエアのエミュレーション処
理方式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software emulation processing method, and more particularly to a software emulation processing method for executing application software developed for an arbitrary microprogram on another microprocessor having a different architecture. Regarding
【0002】[0002]
【従来の技術】図2は、従来のこの種のエミュレーショ
ン処理方式を実行するためのシステムの構成を示すブロ
ック図である。従来のエミュレーション処理方式を実行
するシステムは、異なるアーキテクチャの機械語命令コ
ードで作成されたアプリケーションプログラム201
と、アプリケーションプログラムをターゲットマシンで
実行するエミュレータ202と、エミュレータ202に
より変換されたターゲットコードをアプリケーションプ
ログラム中のアドレスと共に格納するアドレス/ターゲ
ットコード格納テーブル203から構成されている。2. Description of the Related Art FIG. 2 is a block diagram showing a configuration of a system for executing a conventional emulation processing method of this type. A system that executes a conventional emulation processing system is an application program 201 created by machine language instruction codes of different architectures.
An emulator 202 that executes an application program on a target machine, and an address / target code storage table 203 that stores the target code converted by the emulator 202 together with the address in the application program.
【0003】エミュレータ202は、プログラムロード
手段20201,初期アドレス設定手段20202,ア
ドレス検索手段20203,アドレス一致判定手段20
204,アプリケーションコード取り出し手段2020
5,アプリケーションコード−ターゲットコード変換手
段20206,アドレス/ターゲットコード格納手段2
0207,ターゲットコード実行手段20208,アド
レス更新手段20209,ターゲットコード取出手段2
0210を含んで構成されている。アドレス/ターゲッ
トコード格納テーブル203は、ターゲットマシンのメ
モリ中に格納されている。The emulator 202 includes a program loading means 20201, an initial address setting means 20202, an address searching means 20203, and an address matching determining means 20.
204, application code extracting means 2020
5, application code-target code conversion means 20206, address / target code storage means 2
0207, target code executing means 20208, address updating means 20209, target code extracting means 2
0210 is included. The address / target code storage table 203 is stored in the memory of the target machine.
【0004】次にエミュレータ202の動作フローを図
3のフローチャートを参照して説明する。エミュレータ
202の動作フローは、図3のプログラムロード手段3
01,初期アドレス設定手段302,アドレス検索手段
303,アドレス一致判定手段304,アプリケーショ
ンコード取り出し手段305,アプリケーションコード
−ターゲットコード変換手段306,アドレス/ターゲ
ットコード格納手段307,ターゲットコード実行手段
308,アドレス更新手段309,ターゲットコード取
り出し手段310,ターゲットコード実行手段311か
ら構成される。Next, the operation flow of the emulator 202 will be described with reference to the flowchart of FIG. The operation flow of the emulator 202 is the program loading means 3 of FIG.
01, initial address setting means 302, address searching means 303, address coincidence judging means 304, application code extracting means 305, application code-target code converting means 306, address / target code storing means 307, target code executing means 308, address updating It is composed of means 309, target code extracting means 310, and target code executing means 311.
【0005】まず図2のエミュレータ202は、図3の
プログラムロード手段301によりアプリケーションプ
ログラム201をターゲットマシン上のメモリにロード
して、初期アドレス設定手段302により解析を開始す
るアドレスをアプリケーションプログラムの先頭アドレ
スに設定する。次にアドレス検索手段303によって、
アドレス/ターゲットコード格納テーブル203から解
析を実行するアドレスを検索する。解析を実行するアド
レスが、アドレス/ターゲットコード格納テーブル20
3になければ、アドレス一致判定手段304を介してア
プリケーションコード取り出し手段305を実行する
が、一致するアドレスがあれば、ターゲットコード取り
出し手段310を実行する。First, the emulator 202 of FIG. 2 loads the application program 201 into the memory on the target machine by the program loading means 301 of FIG. 3, and the initial address setting means 302 sets the address at which the analysis is started to the start address of the application program. Set to. Next, by the address search means 303,
The address / target code storage table 203 is searched for an address to be analyzed. The address to be analyzed is the address / target code storage table 20.
If it is not 3, the application code fetching means 305 is executed via the address matching judgment means 304, but if there is a matching address, the target code fetching means 310 is executed.
【0006】アプリケーションコード取り出し手段30
5は、解析を実行するアドレスのアプリケーションプロ
グラムを1命令取り出して、アプリケーションコード−
ターゲットコード変換手段306を行う。アプリケーシ
ョンコード−ターゲットコード変換手段306は、取り
出したアプリケーションコードをターゲットコードに変
換して、アドレス/ターゲットコード格納手段307を
行う。アドレス/ターゲットコード格納手段307は、
解析を実行しているアドレスと変換したターゲットコー
ドをアドレス/ターゲットコード格納テーブル203に
格納して、ターゲットコード実行手段308を行う。タ
ーゲットコード実行手段308は、変換したターゲット
コードを実行してアドレス更新手段309を行う。アド
レス更新手段309は、エミュレートしたアプリケーシ
ョンコードの種類または長さに応じてアドレスを更新し
て、アドレス検索手段303を行う。Application code fetching means 30
5 retrieves one instruction of the application program of the address for executing the analysis, and
The target code conversion means 306 is performed. The application code-target code conversion means 306 converts the fetched application code into a target code and executes the address / target code storage means 307. The address / target code storage means 307
The address executing the analysis and the converted target code are stored in the address / target code storage table 203, and the target code executing means 308 is executed. The target code executing means 308 executes the converted target code to perform the address updating means 309. The address updating unit 309 updates the address according to the type or length of the emulated application code and performs the address searching unit 303.
【0007】またターゲットコード取り出し手段310
は、アドレス/ターゲットコード格納テーブル203か
らアドレスに対応するターゲットコードを取り出してタ
ーゲットコード実行手段311を行う。ターゲットコー
ド実行手段311は、取り出したターゲットコードを実
行してアドレス更新手段309を行う。Further, the target code extracting means 310
Executes the target code execution means 311 by fetching the target code corresponding to the address from the address / target code storage table 203. The target code executing means 311 executes the fetched target code to perform the address updating means 309.
【0008】次に具体的な例として、図4に示すアプリ
ケーションプログラムが入力されたときの図2のエミュ
レータ202の動作について説明する。図4のアプリケ
ーションプログラムにおいて、100h−101h番地
のコード『mov r1,1000h』はレジスタr1
に1000hを入れる命令であり、102h−103h
番地のコード『mov[80000h],10h』はデ
ータ領域80000h番地に10hを入れる命令であ
り、104h−off7h番地までは分岐命令以外の命
令があるとする。またoff8h−off9h番地のコ
ード『dec r1』はレジスタr1の値をデクリメン
トする命令、offah−offbh番地のコード『c
mp r1,0』はレジスタr1と0の比較演算を行い
r1=0ならキャリーフラグを1にし、それ以外ならキ
ャリーフラグを0にする命令である。またoffch−
offdh番地のコード『brnc !102h』はキ
ャリーフラグが0の時にアドレス102h番地に分岐す
る命令、offeh−offfh番地のコード『re
t』はサブルーチンコールから戻る命令で、ここではサ
ブルーチンコールのネストは0として、プログラムを終
了する命令になるとする。As a concrete example, the operation of the emulator 202 of FIG. 2 when the application program shown in FIG. 4 is input will be described. In the application program of FIG. 4, the code “mov r1,1000h” at addresses 100h to 101h is the register r1.
Is an instruction to put 1000h in, and 102h-103h
The address code "mov [80000h], 10h" is an instruction to put 10h in the data area 80000h, and it is assumed that there is an instruction other than the branch instruction up to addresses 104h-off7h. The code "dec r1" at the addresses off8h-off9h is an instruction for decrementing the value of the register r1, and the code "c" at the addresses offah-offbh.
mp r1 , 0 ”is an instruction for comparing the registers r1 and 0 and setting the carry flag to 1 if r1 = 0 and setting the carry flag to 0 otherwise. Also offch-
Code of offdh address "brnc! 102h ”is an instruction for branching to the address 102h when the carry flag is 0, and a code“ re ”at the address offeh-offfh.
"t" is an instruction to return from the subroutine call, and here it is assumed that the nest of the subroutine call is 0 and the instruction ends the program.
【0009】図4の例では、上記命令のうち『mov
[80000h],10h』だけは、1対1対応可能な
命令がターゲットホストにないので、複数の命令『mo
ver7,10h』,『mov[80000h],r
7』に変換されて、他の命令は等価な命令に変換され
る。但し等価な命令に変換されるとはいえ、アプリケー
ションコードの命令セットとターゲットコードの命令セ
ットでは等価な命令でも、異なるバイナリコードで実現
されているので、同じバイナリーコードとはならない。
また、ターゲットコードでの各命令長は全て2バイトで
あるとする。In the example of FIG. 4, among the above instructions, "mov
Only [80000h], 10h ”has no instruction that can correspond one-to-one with the target host.
ver7, 10h ”,“ mov [80000h], r
7 ”and other instructions are converted to equivalent instructions. However, even though the instructions are converted into equivalent instructions, the equivalent instructions in the instruction set of the application code and the instruction set of the target code are not realized as the same binary code because they are realized by different binary codes.
Further, each instruction length in the target code is assumed to be 2 bytes.
【0010】次に動作について説明する。まず図3のプ
ログラムロード手段301で、アプリケーションプログ
ラムをターゲットマシンのメモリ上にロードする。次に
初期アドレス設定手段302で、開始するアドレスをエ
ミュレーションプログラムの先頭アドレス100h番地
に設定する。次にアドレス検索手段303で、アドレス
/ターゲットコード格納テーブルから解析を実行するア
ドレス100h番地を検索する。アドレス100h番地
はアドレス/ターゲットコード格納テーブルにないの
で、アプリケーションコード取り出し手段305を実行
する。アプリケーションコード取り出し手段305は、
解析を実行するアドレス100h番地のアプリケーショ
ンプログラムを1命令取り出す。従ってアドレス100
h番地のアプリケーションコード『mov r1,10
00h』が取り出される。次のアプリケーションコード
−ターゲットコード変換手段306は、アプリケーショ
ンコード『mov r1,1000h』をターゲットコ
ード『movr1,1000h』に変換する。Next, the operation will be described. First, the program loading means 301 in FIG. 3 loads an application program onto the memory of the target machine. Next, the initial address setting means 302 sets the starting address to the start address 100h of the emulation program. Next, the address search means 303 searches the address / target code storage table for the address 100h to be analyzed. Since the address 100h is not in the address / target code storage table, the application code fetching means 305 is executed. The application code extracting means 305
One instruction is fetched from the application program at the address 100h for executing the analysis. Therefore the address 100
Application code “mov r1,10” at address h
00h ”is taken out. The next application code-target code conversion means 306 converts the application code “mov r1,1000h” into the target code “movr1,1000h”.
【0011】次のアドレス/ターゲットコード格納手段
307は、アプリケーションアドレス100h番地とタ
ーゲットコード『mov r1,1000h』とをアド
レス/ターゲットコード格納テーブルに格納する。次に
ターゲットコード実行手段308は、ターゲットコード
『mov r1,1000h』を実行する。ターゲット
コードの実行によって、レジスタr1の値は1000h
になる。実行後にはアドレス更新手段309によって解
析を実行するアドレスを102h番地として、アドレス
検索処理303を行う。以上の動作の繰り返しが、of
f8h−off9h番地の『dec r1』まで実行さ
れる。The next address / target code storage means 307 stores the application address 100h and the target code "mov r1, 1000h" in the address / target code storage table. Next, the target code execution means 308 executes the target code “mov r1,1000h”. By executing the target code, the value of register r1 is 1000h.
become. After the execution, the address retrieving process 303 is performed with the address to be analyzed by the address updating unit 309 as the address 102h. The above operation is repeated of
The process is executed up to "dec r1" at the address f8h-off9h.
【0012】レジスタr1の値は1000hなので、o
ff8h−off9h番地のアプリケーションコード
『dec r1』で、レジスタr1がofffhにな
り、offah−offbh番地のアプリケーションコ
ード『cmp r1,0』で、r1=0ではないのでキ
ャリーフラグが0になり、offch−offdh番地
のアプリケーションコード『brnc !102h』の
キャリーフラグが0なので、解析を実行するアドレスが
102h番地になる。このときのアドレス/ターゲット
コード格納テーブルを図5(a)に示す。Since the value of the register r1 is 1000h, o
With the application code "dec r1" at the address ff8h-off9h, the register r1 becomes offffh, and at the application code "cmp r1,0" at the address offah-offbh, the carry flag becomes 0 because r1 = 0 is not satisfied, and offch- Application code of offdh address "brnc! Since the carry flag of "102h" is 0, the address for executing the analysis is the address 102h. The address / target code storage table at this time is shown in FIG.
【0013】その後、アドレス検索処理303で、アド
レス/ターゲットコード格納テーブルから、解析を実行
するアドレス102h番地を検索する。アドレス102
h番地は、アドレス/ターゲットコード格納テーブルに
あるのでターゲットコード取り出し手段310を実行す
る。ターゲットコード取り出し手段310は、アドレス
/ターゲットコード格納テーブルからアドレスに対応す
るターゲットコード『mov r7,10h』,『mo
v[800000h],r7』を取り出す。次のターゲ
ットコード実行手段311は、ターゲットコード『mo
v r7,10h』,『mov[800000h],r
7』を実行してアドレス更新手段309を実行する。そ
の後はアドレス更新手段309によって解析を実行する
アドレスを104h番地として、アドレス検索処理30
3を実行する。以上の動作の繰り返しが、offch−
offdh番地の『brnc !102h』まで実行さ
れて、再び解析を実行するアドレスが102h番地にな
る。この時、レジスタr1は、offehとなってい
る。After that, in the address search processing 303, the address / target code storage table is searched for the address 102h to be analyzed. Address 102
Since the address h is in the address / target code storage table, the target code extracting means 310 is executed. The target code extracting means 310 uses the target code “mov r7, 10h”, “mo” corresponding to the address from the address / target code storage table.
v [800000h], r7 ”is taken out. The next target code execution means 311 uses the target code “mo
v r7,10h ”,“ mov [800000h], r
7 ”to execute the address updating means 309. After that, the address to be analyzed by the address updating unit 309 is set to the address 104h, and the address search processing 30 is performed.
Execute 3. The above operations are repeated offch-
Off-street address "brnc! Up to 102h ”, the address to be analyzed again becomes the address 102h. At this time, the register r1 is offeh.
【0014】さらにアプリケーションコード『dec
r1』,『cmp r1,0』,『brnc !102
h』は、レジスタr1の値を−1して、r1=0でない
ならアドレス102h番地を行うという動作をするた
め、102h番地からoffdh番地までをレジスタr
1の値が0になるまで繰り返すという動作になる。以上
の繰り返しの処理で、102h番地からoffdh番地
までをoffeh回繰り返して行う。その後、アドレス
検索処理303でアドレス/ターゲットコード格納テー
ブルから解析を実行するアドレスoffeh番地を検索
する。アドレスoffehは、アドレス/ターゲットコ
ード格納テーブルにないので、アプリケーションコード
取り出し手段305を行う。Further, the application code "dec
r1 ”,“ cmp r1,0 ”,“ brnc! 102
"h" performs the operation of decrementing the value of the register r1 by -1 and performing the address 102h if r1 = 0 is not satisfied. Therefore, from the address 102h to the address offdh, the register r "
The operation is repeated until the value of 1 becomes 0. Through the above-described repeated processing, the operations from the address 102h to the address offdh are repeated offeh times. After that, in the address search processing 303, the address / offeh address to be analyzed is searched from the address / target code storage table. Since the address offeh is not in the address / target code storage table, the application code fetching means 305 is executed.
【0015】アプリケーションコード取り出し手段30
5は、アドレスoffeh番地のアプリケーションコー
ド『ret』を取り出す。アプリケーションコード−タ
ーゲットコード変換手段306は、アプリケーションコ
ード『ret』をターゲットコード『ret』に変換す
る。アドレス/ターゲットコード格納手段307は、ア
プリケーションアドレスoffeh番地とターゲットコ
ード『ret』をアドレス/ターゲットコード格納テー
ブルに格納する。次にターゲットコード実行手段308
は、ターゲットコード『ret』を実行する。ターゲッ
トコード『ret』の実行により、エミュレーション手
段202は終了する。この時の最終的なアドレス/ター
ゲットコード格納テーブルを図5(b)に示す。Application code fetching means 30
Reference numeral 5 retrieves the application code "ret" at the address offeh. The application code-target code conversion means 306 converts the application code "ret" into the target code "ret". The address / target code storage means 307 stores the application address offseth address and the target code “ret” in the address / target code storage table. Next, target code execution means 308
Executes the target code "ret". Execution of the target code “ret” terminates the emulation means 202. The final address / target code storage table at this time is shown in FIG.
【0016】[0016]
【発明が解決しようとする課題】上記のような従来のエ
ミュレーション処理方式では、同じアドレスにある機械
語コードの2回目以降の実行において、1機械語命令ご
とにアドレス検索手段,アドレス一致手段,ターゲット
コード取り出し手段を実行することになるため、エミュ
レーションの実行に時間がかかるという問題点があっ
た。In the conventional emulation processing method as described above, in the second and subsequent executions of the machine language code at the same address, the address searching means, the address matching means, and the target for each machine language instruction. Since the code fetching means is executed, it takes a long time to execute the emulation.
【0017】具体的な例を、図4のアプリケーションプ
ログラムを参照して説明する。この例において、アプリ
ケーションコード1命令は、ターゲットコード2命令に
置き換えられるとして、ターゲットコード1命令の実行
が1μsであるとする。また、図3の『303→304
→305→306→307→308→309』のターゲ
ットコード以外の実行が平均200命令あり、図3の
『303→304→310→311→309』のターゲ
ットコード以外の実行が50命令あるとする。A specific example will be described with reference to the application program shown in FIG. In this example, it is assumed that the application code 1 instruction is replaced with the target code 2 instruction and the execution of the target code 1 instruction is 1 μs. In addition, “303 → 304” in FIG.
→ 305 → 306 → 307 → 308 → 309 ”has an average of 200 instructions other than the target code and 50 instructions of“ 303 → 304 → 310 → 311 → 309 ”other than the target code shown in FIG.
【0018】従来の方式で実行に要する時間は、「機械
語コードの1回目の実行に要する時間」+「機械語コー
ドの2回目以降の実行に要する時間」である。従来のエ
ミュレーション処理方式で、機械語コードの1回目の実
行に要する時間は、1(回)×(200(命令)+2
(命令))×ofooh(命令)×1(μs)=1
(回)×(200(命令)+2(命令))×3840
(命令)×1(μs)=0.776(秒)である。ま
た、機械語コードの2回目の実行に要する時間は、(4
096(回)×(50(命令)+2(命令))×ofo
oh(命令)×1(μs)=(4096(回)×(50
(命令)+2(命令))×3840(命令)×1(μ
s)=817.889(秒)である。従って従来の方式
でエミュレーション処理の実行に要する時間は、0.7
76(秒)+817.889(秒)=818.665
(秒)となる。The time required for execution by the conventional method is "time required for first execution of machine language code" + "time required for second and subsequent execution of machine language code". In the conventional emulation processing method, the time required for the first execution of the machine language code is 1 (times) x (200 (instructions) + 2
(Instruction)) × ofooh (instruction) × 1 (μs) = 1
(Times) x (200 (commands) + 2 (commands)) x 3840
(Instruction) × 1 (μs) = 0.76 (seconds). Also, the time required for the second execution of the machine language code is (4
096 (times) x (50 (commands) + 2 (commands)) x ofo
oh (command) × 1 (μs) = (4096 (times) × (50
(Instruction) + 2 (instruction) x 3840 (instruction) x 1 (μ
s) = 8178.889 (seconds). Therefore, the time required to execute emulation processing by the conventional method is 0.7
76 (seconds) + 817.889 (seconds) = 818.665
(Seconds).
【0019】本発明はかかる問題点を解決するためにな
されたものであり、高速処理が可能なエミュレーション
処理方式を提供することを目的としている。The present invention has been made to solve the above problems, and an object thereof is to provide an emulation processing system capable of high-speed processing.
【0020】[0020]
【0021】[0021]
【課題を解決するための手段】本発明のエミュレーショ
ン処理システムは、任意のマイクロプログラム向けに開
発されたアプリケーションソフトウェアを異なるアーキ
テクチャを有するホストマシン上で実行するエミュレー
ション処理システムにおいて、エミュレータと、前記ホ
ストマシンのメモリに格納されたアプリケーションアド
レス/ターゲットアドレス格納テーブル,ターゲットコ
ード格納テーブル,未決定参照情報テーブル,開始アド
レス格納領域とでエミュレーション処理システムが構成
され、前記エミュレータには、エミュレーション対象ア
プリケーションプログラムをホストマシンのメモリにロ
ードするプログラムロード手段と、前記開始アドレス格
納領域にアプリケーションプログラムの先頭アドレスを
設定する初期アドレス設定手段と、前記アプリケーショ
ンアドレス/ターゲットアドレス格納テーブルに、前記
エミュレーション対象プログラムの実行しようとするア
ドレスが格納されているか否かを判定することにより、
当該アドレスの前記エミュレーション対象プログラム機
械語コードが変換されているか否かを判定するアプリケ
ーションコード変換判定手段と、前記アプリケーション
コード変換判定手段によりアプリケーションアドレスが
格納されていないときに前記エミュレーション対象プロ
グラムを一定のバイト単位でホストマシンの機械語コー
ドに変換を行うためにエミュレーション対象プログラム
の変換開始アドレスと変換終了アドレスを設定する変換
開始/終了位置設定手段と、エミュレーション対象プロ
グラムの変換を実行しようとするアドレスが前記変換終
了アドレスか否かを判定する終了アプリケーションアド
レス判定手段と、前記終了アプリケーションアドレス判
定手段により実行しようとするアドレスが前記変換終了
アドレスでないと判定されたときに前記エミュレーショ
ン対象プログラムから当該アドレスの機械語コードを取
り出すアプリケーションコード取り出し手段と、前記ア
プリケーションコード取り出し手段により取り出された
エミュレーション対象プログラムの機械語コードが分岐
命令で、参照先アドレスが前記アプリケーションアドレ
ス/ターゲットアドレス格納テーブルになく、且つその
値が変換終了アドレスより大きいか否かを判定する分岐
命令判定手段と、前記分岐命令判定手段により、分岐命
令で参照先のアドレスが、前記アプリケーションアドレ
ス/ターゲットアドレス格納テーブルになく、且つその
値が変換終了アドレスより等しい又は大きいと判断され
なかったとき、前記エミュレーション対象プログラムか
ら取り出した機械語コードを前記ホストマシンの機械語
コードに変換するアプリケーションコード−ターゲット
コード変換手段と、前記ホストマシンの機械語コードを
前記ターゲットコード格納テーブルに格納して、前記エ
ミュレーション対象プログラムの該当アドレスをホスト
マシンの機械語コードの該当アドレスと共に前記アプリ
ケーションアドレス/ターゲットアドレス格納テーブル
に格納して、機械語コードの参照先が前記アプリケーシ
ョンアドレス/ターゲットアドレス格納テーブルにない
場合に前記未決定参照情報テーブルに解析中のホストマ
シンのアドレスを参照先のエミュレーション対象プログ
ラムのアドレスと共に格納するアドレス/ターゲットコ
ード格納手段と、前記ターゲットコードアドレス中の機
械語コードを実行するターゲットコード実行手段と、前
記分岐命令判定手段により、分岐命令で参照先のアドレ
スが、前記アプリケーションアドレス/ターゲットアド
レス格納テーブルになく、且つその値が変換終了アドレ
スより等しい又は大きいと判断されたとき、あるいは前
記終了アプリケーションアドレス判定手段により、実行
しようとするアドレスが前記変換終了アドレスのとき、
前記ターゲットコードアドレス中の機械語コードの実行
から本エミュレーションに制御を戻すためホストマシン
の機械語コードを生成する制御用ターゲットコード生成
手段と、前記アドレス/ターゲットコード格納手段によ
り、格納された未決定参照情報テーブルの解析中のホス
トマシンのアドレスにある機械語コードを、参照先のエ
ミュレーション対象プログラムのアドレスに該当するホ
ストマシンの機械語コードのアドレスで変更を行う参照
先決定手段とを備えたことを特徴とする。 The emulation of the present invention
In an emulation processing system that executes application software developed for an arbitrary microprogram on a host machine having a different architecture, the emulator processing system stores an application address / target address stored in a memory of the host machine. An emulation processing system is configured by the table, the target code storage table, the undecided reference information table, and the start address storage area, and the emulator includes a program loading unit that loads an emulation target application program into the memory of the host machine, and the start unit. Initial address setting means for setting the start address of the application program in the address storage area, and the application address / target The Ttoadoresu storage table, by the address to be executed of the emulated program to determine whether it is stored,
Application code conversion determination means for determining whether or not the machine language code of the emulation target program at the address is converted, and the emulation target program is set to a fixed value when the application address is not stored by the application code conversion determination means. The conversion start / end position setting means for setting the conversion start address and the conversion end address of the emulation target program in order to convert the machine language code of the host machine in byte units, and the address to execute the conversion of the emulation target program and application termination address determining means for determining whether the conversion end address, an address to be executed by the application termination address determining means is not the end of conversion address Means extraction application code to retrieve the machine code of the address from the emulated program when constant, a machine language code is a branch instruction emulated program taken out by the application code extraction means, reference destination address is the A branch instruction determination means for determining whether or not the value is not in the application address / target address storage table and is larger than the conversion end address, and the reference address of the branch instruction by the branch instruction determination means is the application address. / If it is not found in the target address storage table and the value is not equal to or larger than the conversion end address, the machine language code extracted from the emulation target program is Application code into a machine language code Tomashin - the target code conversion means, and stores the machine code of the host machine to the target code storage table, the machine code of the relevant address host machine of the emulated program The address of the host machine under analysis is stored in the application address / target address storage table together with the corresponding address, and when the reference destination of the machine language code is not in the application address / target address storage table, the undecided reference information table is analyzed. Address / target code storage means for storing together with the address of the emulation target program of the reference destination, target code execution means for executing the machine language code in the target code address, and When the branch instruction determination means determines that the reference address in the branch instruction is not in the application address / target address storage table and the value is equal to or larger than the conversion end address, or the end application address determination By the means, when the address to be executed is the conversion end address,
The control target code generation means for generating the machine language code of the host machine to return the control from the execution of the machine language code in the target code address to the emulation, and the undetermined value stored by the address / target code storage means. A reference destination determining means for changing the machine language code at the address of the host machine under analysis of the reference information table with the address of the machine language code of the host machine corresponding to the address of the emulation target program of the reference destination is provided. Is characterized by.
【0022】また、任意のマイクロプログラム向けに開
発されたアプリケーションソフトウェアを異なるアーキ
テクチャを有するホストマシン上で実行するエミュレー
ション処理システムにおいて、 エミュレータと、前記
ホストマシンのメモリに格納されたアプリケーションア
ドレス/ターゲットアドレス格納テーブル,ターゲット
コード格納テーブル,未決定参照情報テーブル,開始ア
ドレス格納領域とでエミュレーション処理システムが構
成され、前記エミュレータを、エミュレーション対象ア
プリケーションプログラムをホストマシンのメモリにロ
ードするロードプログラム、前記開始アドレス格納領域
にアプリケーションプログラムの先頭アドレスを設定す
る初期アドレス設定プログラム、前記アプリケーション
アドレス/ターゲットアドレス格納テーブルに、前記エ
ミュレーション対象プログラムの実行しようとするアド
レスが格納されているか否かを判定することにより、当
該アドレスの前記エミュレーション対象プログラム機械
語コードが変換されているか否かを判定するアプリケー
ションコード変換判定プログラム、前記アプリケーショ
ンコード変換判定プログラムによりアプリケーションア
ドレスが格納されていないときに前記エミュレーション
対象プログラムを一定のバイト単位で前記ホストマシン
の機械語コードに変換を行うためにエミュレーション対
象プログラムの変換開始アドレスと変換終了アドレスを
設定する変換開始/終了位置設定プログラム、前記エミ
ュレーション対象プログラムの変換を実行しようとする
アドレスが前記変換終了アドレスか否かを判定する終了
アプリケーションアドレス判定プログラム、前記終了ア
プリケーションアドレス判定プログラムにより実行しよ
うとするアドレスが前記変換終了アドレスでないと判定
されたときに前記エミュレーション対象プログラムから
当該アドレスの機械語コードを取り出すアプリケーショ
ンコード取り出しプログラム、前記アプリケーションコ
ード取り出しプログラムにより取り出されたエミュレー
ション対象プログラムの機械語コードが分岐命令で、参
照先アドレスが前記アプリケーションアドレス/ターゲ
ットアドレス格納テーブルになく、且つその値が変換終
了アドレスより大きいか否かを判定する分岐命令判定プ
ログラム、前記分岐命令判定プログラムにより、分岐命
令で参照先のアドレスが、前記アプリケーションアドレ
ス/ターゲットアドレス格納テーブルになく、且つその
値が変換終了アドレスより等しい又は大きいと判断され
なかったとき、前記エミュレーション対象プログラムか
ら取り出した機械語コードを前記ホストマシンの機械語
コードに変換するアプリケーションコード−ターゲット
コード変換プログラム、前記ホストマシンの機械語コー
ドを前記ターゲットコード格納テーブルに格納して、前
記エミュレーション対象プログラムの該当アドレスをホ
ストマシンの機械語コードの該当アドレスと共に前記ア
プリケーションアドレス/ターゲットアドレス格納テー
ブルに格納して、機械語コードの参照先が前記アプリケ
ーションアドレス/ターゲットアドレス格納テーブルに
ない場合に前記未決定参照情報テーブルに解析中のホス
トマシンのアドレスを参照先のエミュレーション対象プ
ログラムのアドレスと共に格納するアドレス/ターゲッ
トコード格納プログラム、前記ターゲットコードアドレ
ス中の機械語コードを実行するターゲットコード実行プ
ログラム、前記分岐命令判定プログラムにより、分岐命
令で参照先のアドレスが、前記アプリケーションアドレ
ス/ターゲットアドレス格納テーブルになく、且つその
値が変換終了アドレスより等しい又は大きいと判断され
たとき、あるいは前記終了アプリケーションアドレス判
定プログラムにより、実行しようとするアドレスが前記
変換終了アドレスのとき、前記ターゲットコードアドレ
ス中の機械語コードの実行から本エミュレーションに制
御を戻すため前記ホストマシンの機械語コードを生成す
る制御用ターゲットコード生成プログラム、前記アドレ
ス/ターゲットコード格納プログラムにより、格納され
た未決定参照情報テーブルの解析中のホストマシンのア
ドレスにある機械語コードを、参照先のエミュレーショ
ン対象プログラムのアドレスに該当するホストマシンの
機械語コードのアドレスで変更を行う参照先決定プログ
ラム、により構成し、前記各プログラムを記録した記録
媒体を備えたことを特徴とする。Further, in an emulation processing system for executing application software developed for an arbitrary microprogram on a host machine having a different architecture, an emulator and an application address / target address storage stored in the memory of the host machine. table, target code storage table, pending reference information table, the emulation processing system is composed of a start address storage area, loading program for loading the emulator, the emulation target application program in the memory of the host machine, said start address An initial address setting program that sets the start address of the application program in the storage area, and the application address / target Application for determining whether or not the machine language code of the emulation target program at the address is converted by determining whether or not the address to be executed by the emulation target program is stored in the address storage table. Code conversion determination program, start conversion of the emulation target program in order to convert the emulation target program into the machine language code of the host machine in constant byte units when the application address is not stored by the application code conversion determination program A conversion start / end position setting program for setting an address and a conversion end address, whether or not the address to be converted of the emulation target program is the conversion end address Application termination address determination program determines, determined address to be executed is not the conversion end address by the application termination address determination program
Is the emulation application code from the target program takes out the machine code of the address extraction program in machine language code branch instruction emulated program taken out by the application code extraction program, reference destination address is the application address when the / A branch instruction determination program that determines whether or not the value is not in the target address storage table and is greater than the conversion end address, and the reference address in the branch instruction is the application address / target address according to the branch instruction determination program. The machine extracted from the emulation target program when it is not found in the storage table and its value is not judged to be equal to or larger than the conversion end address. Application code to convert the code into machine code of the host machine - the target code converter, stores the machine code of the host machine to the target code storage table, the corresponding address of the emulated program of the host machine machine A host machine which is stored in the application address / target address storage table together with the corresponding address of the word code and is being analyzed in the undecided reference information table when the reference destination of the machine language code is not in the application address / target address storage table. Address / target code storing program for storing the address of the target code together with the address of the emulation target program of the reference destination, and a target for executing the machine language code in the target code address. When the branch code execution program and the branch instruction determination program determine that the reference address in the branch instruction is not in the application address / target address storage table and the value is equal to or greater than the conversion end address, or A control for generating a machine language code of the host machine for returning control from execution of the machine language code in the target code address to the emulation when the address to be executed is the conversion end address by the end application address determination program. The target language code at the address of the host machine under analysis of the stored undecided reference information table by the target code generation program for A reference destination determining program for changing at the address of the machine language code of the host machine corresponding to the address of the target program, and a recording medium having the respective programs recorded therein.
【0023】さらに、エミュレーション対象アプリケー
ションプログラムを前記ホストマシンで動作するターゲ
ットコードに変換する一定のバイト単位は、1000h
バイトであることを特徴とする。Further, the constant byte unit for converting the emulation target application program into the target code operating on the host machine is 1000 h.
It is characterized by being a bite.
【0024】本発明のエミュレーション処理方式は上述
のような構成とすることにより、高速な置き換え処理が
可能となる。すなわち従前のエミュレーション処理方式
では、機械語を読み込み、解釈,実行処理を行う必要が
あり、ループ処理部分に関してもループの度に以前処理
した同一部分の機械語命令を読み込み、解釈が必要であ
る。また従来の技術として説明した、一度実行したコー
ドを再度実行する際に高速化する方式でも、1命令ごと
に実行ターゲットコード以外の実行があるため、その分
余計に時間がかかってしまう。本発明のエミュレーショ
ン処理方式は、アプリケーションプログラムが前方参照
命令を持っていることを考慮し、上述のような構成にお
いてブロック単位で読み込んだ上で、ターゲットプログ
ラムに置き換えることとしたので、高速な置き換え処理
が可能となる。With the emulation processing method of the present invention having the above-described configuration, high-speed replacement processing can be performed. That is, in the conventional emulation processing method, it is necessary to read the machine language, interpret and execute the machine language, and also to read and interpret the machine language instruction of the same part that was previously processed for each loop processing part. Further, even in the method described as the conventional technique, in which the code that has been executed once is speeded up when it is re-executed, there is execution of a code other than the execution target code for each instruction, and therefore it takes extra time. In the emulation processing method of the present invention, in consideration of the fact that the application program has a forward reference instruction, in the configuration as described above, the block program is read in and then replaced with the target program. Is possible.
【0025】[0025]
【発明の実施の形態】以下、本発明の実施形態を図面を
参照して説明する。図1は、本実施形態のミュレーショ
ン処理方式を実行するためのシステムの構成を示すブロ
ック図である。図1に示すシステムは、異なるアーキテ
クチャの機械語命令コードで作成されたアプリケーショ
ンプログラム101と、このアプリケーションプログラ
ム101をターゲットマシンで実行するエミュレータ1
02と、アプリケーションプログラム101中のアドレ
ス(アプリケーションアドレス1031)をターゲット
プログラム中のアドレス(ターゲットアドレス103
2)と共に格納するアプリケーションアドレス/ターゲ
ットアドレス格納テーブル103と、エミュレータ10
2により変換されたターゲットコード1041を格納す
るターゲットコード格納テーブル104と、前方参照命
令のターゲットアドレス10512を前方参照分岐命令
の参照先のアプリケーションアドレス10511と共に
格納する未決定参照情報テーブル105と、解析を開始
するアドレスを格納する開始アドレス格納領域106か
ら構成される。DETAILED DESCRIPTION OF THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a system for executing the simulation processing method of this embodiment. The system shown in FIG. 1 includes an application program 101 created by machine language instruction codes of different architectures, and an emulator 1 for executing this application program 101 on a target machine.
02 and the address in the application program 101 (application address 1031) to the address in the target program (target address 103
2) The application address / target address storage table 103 to be stored together with the emulator 10
The target code storage table 104 for storing the target code 1041 converted by 2 and the undecided reference information table 105 for storing the target address 10512 of the forward reference instruction together with the application address 10511 of the reference destination of the forward reference branch instruction are analyzed. It comprises a start address storage area 106 for storing the start address.
【0026】エミュレータ102は、プログラムロード
手段10201,初期アドレス設定手段10202,ア
プリケーションコード変換判定手段10203,変換開
始/終了位置設定手段10204,終了アプリケーショ
ンアドレス判定手段10205,アプリケーションコー
ド取り出し手段10206,分岐命令判定手段1020
7,アプリケーションコード−ターゲットコード変換手
段10208,アドレス/ターゲットコード格納手段1
0209,ターゲットコード実行手段10210,制御
用ターゲットコード生成手段10211,参照先決定手
段10212を含んで構成されている。アプリケーショ
ンアドレス/ターゲットアドレス格納テーブル103,
ターゲットコード格納テーブル104,未決定参照情報
テーブル105および開始アドレス格納領域106は、
ターゲットマシンのメモリ中に格納される。The emulator 102 includes a program load means 10201, an initial address setting means 10202, an application code conversion determination means 10203, a conversion start / end position setting means 10204, an end application address determination means 10205, an application code fetching means 10206, and a branch instruction determination. Means 1020
7, application code-target code conversion means 10208, address / target code storage means 1
0209, target code execution means 10210, control target code generation means 10211, and reference destination determination means 10212 are included. Application address / target address storage table 103,
The target code storage table 104, the undetermined reference information table 105, and the start address storage area 106 are
Stored in the memory of the target machine.
【0027】次に本実施形態のエミュレータ102の動
作フローを図6のフローチャートを参照して説明する。
エミュレータ102の動作フローは、図6のプログラム
ロード手段601,初期アドレス設定手段602,アプ
リケーションコード変換判定手段603,変換開始/終
了位置設定手段604,終了アプリケーションアドレス
判定手段605,アプリケーションコード取り出し手段
606,分岐命令判定手段607,アプリケーションコ
ード−ターゲットコード変換手段608,アドレス/タ
ーゲットコード格納手段609,ターゲットコード実行
手段610,制御用ターゲットコード生成手段611,
アドレス/ターゲットコード格納手段612,制御用タ
ーゲットコード生成手段613,ターゲットコード格納
手段614,参照先決定手段615からなる。Next, the operation flow of the emulator 102 of this embodiment will be described with reference to the flowchart of FIG.
The operation flow of the emulator 102 is as follows: program load means 601, initial address setting means 602, application code conversion determining means 603, conversion start / end position setting means 604, end application address determining means 605, application code fetching means 606 of FIG. Branch instruction determination means 607, application code-target code conversion means 608, address / target code storage means 609, target code execution means 610, control target code generation means 611,
The address / target code storage unit 612, the control target code generation unit 613, the target code storage unit 614, and the reference destination determination unit 615 are included.
【0028】まず図1のミュレータ102は、図6のプ
ログラムロード手段601によりアプリケーションプロ
グラムをターゲットマシンのメモリ上にロードして、初
期アドレス設定手段602により、図1の開始アドレス
格納領域106にアプリケーションプログラムの先頭ア
ドレスを設定する。次にアプリケーションコード変換判
定手段603を行う。アプリケーションコード変換判定
手段603は、解析実行中のアプリケーションアドレス
が図1のアプリケーションアドレス/ターゲットアドレ
ス格納テーブル103にあるか否かにより、既に変換さ
れているか否かを判定する。First, the emulator 102 of FIG. 1 loads the application program onto the memory of the target machine by the program loading means 601 of FIG. 6, and the initial address setting means 602 causes the application program to be stored in the start address storage area 106 of FIG. Set the start address of. Next, the application code conversion determination means 603 is performed. The application code conversion determination unit 603 determines whether or not the application address being analyzed is already converted depending on whether or not the application address being analyzed is in the application address / target address storage table 103 of FIG.
【0029】解析実行中のアプリケーションアドレスが
あれば、既に変換されていると判断して、ターゲットコ
ード実行手段610を行い、解析実行中のアプリケーシ
ョンアドレスがなければ、既に変換されていないと判断
して、変換開始/終了位置設定手段604を行う。変換
開始/終了位置設定手段604は、図1の開始アドレス
格納領域106から取り出したアドレスを、解析を開始
するアプリケーションアドレスとする。次に開始アプリ
ケーションアドレスから一定のバイトサイズまでのアプ
リケーションアドレスが、図1のアプリケーションアド
レス/ターゲットアドレス格納テーブル103にあれ
ば、そのうち最も値の大きいアプリケーションアドレス
を終了アプリケーションアドレスとする。If there is an application address being analyzed, it is judged that it has already been converted, and the target code executing means 610 is executed. If there is no application address being analyzed, it is judged that it has not been converted. , Conversion start / end position setting means 604. The conversion start / end position setting means 604 sets the address fetched from the start address storage area 106 of FIG. 1 as the application address for starting the analysis. Then the application address from the start the application address to a certain byte size, if the application address / target address storing table 103 in FIG. 1, the application termination address larger applications address of which the most value.
【0030】なければ開始アプリケーションアドレスか
ら一定のバイトサイズのアプリケーションアドレスを、
終了アプリケーションアドレスとして、終了アプリケー
ションアドレス判定手段605を行う。終了アプリケー
ションアドレス判定手段605は、解析を行っているア
プリケーションアドレスが終了アプリケーションアドレ
スなら制御用ターゲットコード生成手段613を行い、
そうでないならアプリケーションコード取り出し手段6
06を行う。アプリケーションコード取り出し手段60
6は、解析を実行するアプリケーションアドレスのアプ
リケーションプログラムを1命令取り出して、分岐命令
判定手段607を行う。If not, an application address of a fixed byte size is given from the start application address,
As the end application address, the end application address determination means 605 is performed. If the application address being analyzed is the end application address, the end application address determination means 605 executes the control target code generation means 613,
Otherwise, application code fetching means 6
Perform 06. Application code fetching means 60
6 fetches one instruction of the application program having the application address for executing the analysis, and executes the branch instruction judgment means 607.
【0031】分岐命令判定手段607は、取り出したア
プリケーションコードが分岐命令で参照先のアプリケー
ションアドレスが図1のアプリケーションアドレス/タ
ーゲットアドレス格納テーブル103になく、且つその
値が終了アプリケーションアドレスより等しいか又は大
きければ、すなわち、まだ出来ていない処理範囲外の前
方参照分岐命令と判定して、制御用ターゲットコード生
成手段611を行い、そうでなければアプリケーション
コード−ターゲットコード変換手段608を行う。アプ
リケーションコード−ターゲットコード変換手段608
は、取り出したアプリケーションコードをターゲットコ
ードに変換して、アドレス/ターゲットコード格納手段
609を行う。The branch instruction determining means 607 determines that the fetched application code is a branch instruction, the referenced application address is not in the application address / target address storage table 103 of FIG. 1, and the value is equal to or larger than the end application address. That is, that is, it is determined that the instruction is a forward reference branch instruction out of the processing range that has not been completed, and the control target code generation means 611 is executed, and otherwise, the application code-target code conversion means 608 is executed. Application code-target code conversion means 608
Converts the fetched application code into a target code and executes the address / target code storage means 609.
【0032】アドレス/ターゲットコード格納手段60
9は、解析をしているアプリケーションアドレスと、そ
のアプリケーションアドレスに対応しているターゲット
アドレスを、図1のアプリケーションアドレス/ターゲ
ットコードアドレス格納テーブル103に格納して、変
換したターゲットコードを、図1のターゲットコード格
納テーブル104に格納する。次に解析しているアプリ
ケーションコードが分岐命令で、参照先のアプリケーシ
ョンアドレスが図1のアプリケーションアドレス/ター
ゲットアドレス格納テーブル103にない時には、解析
中のターゲットコードアドレスを参照先のアプリケーシ
ョンアドレスと共に、未決定参照情報テーブル105に
格納する。Address / target code storage means 60
9 stores the application address being analyzed and the target address corresponding to the application address in the application address / target code address storage table 103 of FIG. 1, and converts the converted target code to the target address of FIG. Store in the target code storage table 104. Next, when the application code being analyzed is a branch instruction and the reference destination application address is not in the application address / target address storage table 103 of FIG. 1, the target code address being analyzed together with the reference destination application address is undetermined. Store in the reference information table 105.
【0033】次に解析を行うアプリケーションアドレス
を、取り出したアプリケーションコードのコードサイズ
分増やして、アプリケーションアドレスに対応するター
ゲットアドレスを、ターゲットコードのコードサイズ分
増やして、終了アプリケーションアドレス判定手段60
5を行う。制御用ターゲットコード生成手段611は、
図1の開始アドレス格納領域106に、参照先のアプリ
ケーションアドレスを格納した後に、制御をエミュレー
タに戻すターゲットコードを生成して、アドレス/ター
ゲットコード格納手段612を行う。アドレス/ターゲ
ットコード格納手段612は、解析をしているアプリケ
ーションアドレスと、そのアプリケーションアドレスに
対応しているターゲットアドレスを、図1のアプリケー
ションアドレス/ターゲットコードアドレス格納テーブ
ル103に格納する。Next, the application address to be analyzed is increased by the code size of the fetched application code, the target address corresponding to the application address is increased by the code size of the target code, and the end application address determining means 60.
Do 5. The control target code generation means 611 is
After the application address of the reference destination is stored in the start address storage area 106 of FIG. 1, a target code for returning control to the emulator is generated and the address / target code storage means 612 is executed. The address / target code storage means 612 stores the application address being analyzed and the target address corresponding to the application address in the application address / target code address storage table 103 of FIG.
【0034】次に生成したターゲットコードを、図1の
ターゲットコード格納テーブルに格納して、解析を行う
アプリケーションアドレスを、取り出したアプリケーシ
ョンコードのコードサイズ分増やして、アプリケーショ
ンアドレスに対応するターゲットアドレスを、ターゲッ
トコードのコードサイズ分増やして、終了アプリケーシ
ョンアドレス判定手段605を行う。制御用ターゲット
コード生成手段613は、図1の開始アドレス格納領域
106に解析をしているアプリケーションアドレスを格
納した後に、制御をエミュレータに戻すターゲットコー
ドを生成して、ターゲットコード格納手段614を行
う。ターゲットコード格納手段614は、生成したター
ゲットコードを図1のターゲットコード格納テーブル1
04に格納して、参照先決定手段615を行う。参照先
決定手段615は、図1の未決定参照情報テーブル10
5に格納されているアプリケーションアドレスに対応す
るターゲットアドレスを、図1のアプリケーションアド
レス/ターゲットアドレス格納テーブル103から取り
出し、取り出したターゲットアドレスを用いて、未決定
参照情報テーブル105に格納されているターゲットア
ドレスにある図1のターゲットコード1041の変更を
行い、ターゲットコード実行手段610を行う。ターゲ
ットコード実行手段610は、変換を開始したアプリケ
ーションアドレスに対応するターゲットアドレスからタ
ーゲットコードの実行を行う。ターゲットコード実行終
了後は、アプリケーションコード変換判定手段603を
行う。Next, the generated target code is stored in the target code storage table of FIG. 1, the application address for analysis is increased by the code size of the fetched application code, and the target address corresponding to the application address is The code size of the target code is increased and the end application address determination means 605 is performed. The control target code generation means 613 stores the application address being analyzed in the start address storage area 106 of FIG. 1, then generates a target code for returning control to the emulator, and executes the target code storage means 614. The target code storage means 614 stores the generated target code in the target code storage table 1 of FIG.
04, and the reference destination determining means 615 is executed. The reference destination determining unit 615 uses the undetermined reference information table 10 shown in FIG.
The target address corresponding to the application address stored in No. 5 is retrieved from the application address / target address storage table 103 of FIG. 1, and the retrieved target address is used to store the target address stored in the undetermined reference information table 105. The target code execution means 610 is executed by changing the target code 1041 of FIG. The target code execution means 610 executes the target code from the target address corresponding to the application address that started the conversion. After the target code execution is completed, the application code conversion determination means 603 is performed.
【0035】次に具体的な例として、図7に示すアプリ
ケーションプログラムが入力されたときの図1のエミュ
レータ102の動作について説明する。図7のアプリケ
ーションプログラムにおいて、100h−101h番地
のコード『mov[800000h],10h』はデー
タ領域80000h番地に10hを入れる命令、102
h−103h番地のコード『brc !106h』はキ
ャリーフラグが1の時にアドレス106h番地に分岐す
る命令、104h−105h番地のコード『brnc
!2100h』はキャリーフラグが0の時にアドレス2
100h番地に分岐する命令、10feh−10ffh
番地のコード『and r1,10h』はレジスタr1
と10hのand演算を行い、結果をr1に入れる命
令、2100h−2101h番地のコード『or r
1,r2』はレジスタr1とレジスタr2のor演算を
行い、結果をr1に入れる命令、2100h−2101
h番地のコード『ret』はサブルーチンコールから戻
る命令で、ここではサブルーチンコールのネストは0と
してプログラムを終了する命令になるとする。As a concrete example, the operation of the emulator 102 of FIG. 1 when the application program shown in FIG. 7 is input will be described. In the application program of FIG. 7, the code “mov [800000h], 10h” at addresses 100h-101h is an instruction to put 10h in the data area 80000h, 102
Code "brc!" at address h-103h 106h ”is an instruction for branching to the address 106h when the carry flag is 1, and the code“ brnc for the addresses 104h-105h.
!! 2100h ”is address 2 when the carry flag is 0.
Instruction to branch to address 100h, 10feh-10ffh
The address code "and r1,10h" is the register r1.
And 10h AND operation and put the result in r1 Code "or r" at addresses 2100h-2101h
1, r2 ”is an instruction 2100h-2101 for performing the or operation of the registers r1 and r2 and putting the result in r1.
The code "ret" at the address h is an instruction to return from the subroutine call, and here it is assumed that the nest of the subroutine call is 0 and the instruction ends the program.
【0036】一般に『br !0XXXXh』は、無条
件に0XXXXh番地に分岐する命令で、『brc !
0XXXXh』は、キャリーフラグが1なら0XXXX
h番地に分岐する命令で、『benc !0XXXX
h』はキャリーフラグが0なら、0XXXXh番地に分
岐する命令である。この例では、上記の命令のうち『m
ov[800000h],10h』だけ、複数の命令
『mov r7,10h』,『mov[800000
h],r7』に変換されて、他の命令は等価な命令に変
換される。ターゲットコードでの各命令長は全て2バイ
トであるとする。この例においては、本方式の変換する
一定の単位は、1000hバイトとする。Generally, "br! "0XXXXh" is an instruction that unconditionally branches to address 0XXXXh, and "brc!
0XXXXh ”means 0XXXX if the carry flag is 1.
An instruction to branch to address h, "benc! 0XXXX
If the carry flag is 0, "h" is an instruction to branch to address 0XXXXh. In this example, "m
ov [800000h], 10h ", multiple instructions" mov r7,10h "," mov [800000] "
h], r7 ″, and the other instructions are converted into equivalent instructions. It is assumed that each instruction length in the target code is 2 bytes. In this example, the constant unit to be converted in this method is 1000 h bytes.
【0037】図1の開始アドレス格納領域のターゲット
アドレスを0c00000h番地として、『br』命令
の参照先のアプリケーションアドレスが0XXXXh番
地を格納した後に、制御をエミュレータに戻すターゲッ
トコードを『mov r7,0XXXXh』,『mov
[0c00000h],r7』,『br[0h]』とす
る。『mov r7,0XXXXh』は、レジスタr7
に値0XXXXhを入れる命令で、『mov[0c00
000h],r7』はアドレス0c0000h番地にレ
ジスタr7の値を入れる命令で、『br[0h]』はエ
ミュレータに制御を戻す命令である。With the target address of the start address storage area in FIG. 1 as address 0c00000h, the application address of the reference destination of the "br" instruction stores address 0XXXXh, and the target code for returning control to the emulator is "mov r7, 0XXXXh". , "Mov
[0c00000h], r7 ”, and“ br [0h] ”. "Mov r7,0XXXXh" is the register r7
Command to put the value 0XXXXh into "mov [0c00
000h], r7 ”is an instruction to put the value of the register r7 at the address 0c0000h, and“ br [0h] ”is an instruction to return the control to the emulator.
【0038】また『brc』命令の参照先のアプリケー
ションアドレスが0XXXXh番地を格納した後に、制
御をエミュレータに戻すターゲットコードは、制御をエ
ミュレータに戻すターゲットコードの先頭のターゲット
アドレスが0AAAAh番地の時、『brnc !0A
AAAh+8h』,『mov r7,0XXXXh』,
『mov[0c00000h],r7』,『br[0
h]』とする。『brnc !0AAAAh+8h』
は、キャリーフラグが0なら、機械語コード『brnc
!0AAAAh+8h』,『mov r7,0XXX
Xh』,『mov[0c00000h],r7』,『b
r[0h]』のサイズは8バイトであるので、機械語コ
ード『brnc !0AAAAh+8h』,『mov
r7,0XXXXh』,『mov[0c00000
h],r7』,『br[0h]』の次の機械語コードに
分岐するという命令となる。つまりキャリーフラグが1
で分岐をする際はエミュレータに制御し、そうでないと
きはそれ以降の機械語コードを実行するという命令にな
る。The target code for returning control to the emulator after the application address of the reference destination of the "brc" instruction stores address 0XXXXh is "0" when the target address at the beginning of the target code for returning control to the emulator is 0AAAAh. brnc! 0A
AAAh + 8h ”,“ mov r7, 0XXXXh ”,
"Mov [0c00000h], r7", "br [0
h] ”. "Brnc! 0AAAAh + 8h ”
If the carry flag is 0, the machine code "brnc
!! 0AAAh + 8h ”,“ mov r7, 0XXX
Xh ”,“ mov [0c00000h], r7 ”,“ b
Since the size of “r [0h]” is 8 bytes, the machine language code “brnc! 0AAAh + 8h ”,“ mov
r7,0XXXXh ”,“ mov [0c00000
h], r7 ”, and“ br [0h] ”, the instruction branches to the next machine language code. That is, the carry flag is 1
When branching with, the instruction is to control the emulator, otherwise execute the subsequent machine code.
【0039】『brnc』命令の参照先のアプリケーシ
ョンアドレスが0XXXXh番地を格納した後に制御を
エミュレータに戻すターゲットコードは、制御をエミュ
レータに戻すターゲットコードの先頭のターゲットアド
レスが0AAAAh番地の時、『brc !0AAAA
h+8h』,『mov r7,0XXXXh』,『mo
v[0c00000h],r7』,『br[0h]』で
ある。『brc !0AAAAh+8h』は、キャリー
フラグが1なら、機械語コード『brc !0AAAA
h+8h』,『mov r7,0XXXXh』,『mo
v[0c00000h],r7』,『br[0h]』の
サイズは8バイトであるので、機械語コード『brc
!0AAAAh+8h』,『mov r7,0XXXX
h』,『mov[0c00000h],r7』,『br
[0h]』の次の機械語コードに分岐するという命令と
なる。つまりキャリーフラグが0で分岐をする際は、エ
ミュレータに制御を戻して、そうでないときはそれ以降
の機械語コードを実行するという命令になる。The target code that returns control to the emulator after the application address of the reference destination of the "brnc" instruction stores address 0XXXXh is "brc! 0AAAAA
h + 8h ”,“ mov r7, 0XXXXh ”,“ mo
v [0c00000h], r7 ”and“ br [0h] ”. "Brc! 0AAAAh + 8h ”is a machine language code“ brc! 0AAAAA
h + 8h ”,“ mov r7, 0XXXXh ”,“ mo
Since the size of v [0c00000h], r7 ”and“ br [0h] ”is 8 bytes, the machine language code“ brc ”
!! 0AAAAh + 8h ”,“ mov r7, 0XXXX
h ”,“ mov [0c00000h], r7 ”,“ br
The instruction is to branch to the machine language code next to [0h]. In other words, when the carry flag is 0, the instruction is to return control to the emulator, and otherwise execute the subsequent machine language code.
【0040】次に動作について説明する。まず図6のプ
ログラムロード手段601で、アプリケーションプログ
ラムをターゲットマシンのメモリ上にロードする。次に
初期アドレス設定手段602で開始するアドレスを、図
1の開始アドレス格納領域106にアプリケーションプ
ログラムの先頭アドレス100h番地に設定する。次の
アプリケーションコード変換判定手段603は、図1の
アプリケーションアドレス/ターゲットアドレス格納テ
ーブル103に解析実行中のアプリケーションアドレス
100h番地があるか否かを判定する。アプリケーショ
ンアドレス100h番地は、アプリケーションアドレス
/ターゲットアドレス格納テーブル103にないので、
変換開始/終了位置設定手段604を行う。Next, the operation will be described. First, the program loading means 601 in FIG. 6 loads an application program onto the memory of the target machine. Next, the address started by the initial address setting means 602 is set to the start address 100h of the application program in the start address storage area 106 of FIG. The next application code conversion determination means 603 determines whether or not there is an application address 100h being analyzed in the application address / target address storage table 103 of FIG. Since the application address 100h is not in the application address / target address storage table 103,
The conversion start / end position setting means 604 is performed.
【0041】次に交換開始/終了位置設定手段604
は、図1の開始アドレス格納領域106から取り出した
アドレス100h番地を、解析を開始するアプリケーシ
ョンアドレスとし、開始アプリケーションアドレスから
一定のバイトサイズまでのアプリケーションアドレスが
図1のアプリケーションアドレス/ターゲットアドレス
格納テーブル103にないので、開始アプリケーション
アドレス100h番地から一定のバイトサイズ1000
hバイトのアプリケーションアドレス1100h番地
を、終了アプリケーションアドレスとして、次に終了ア
プリケーションアドレス判定手段605を行う。Next, the exchange start / end position setting means 604
Is the address 100h fetched from the start address storage area 106 of FIG. 1 as an application address for starting analysis, and the application address from the start application address to a fixed byte size is the application address / target address storage table 103 of FIG. Since it does not exist, a fixed byte size 1000 from the starting application address 100h
The end application address determining unit 605 is performed next using the h-byte application address 1100h as the end application address.
【0042】終了アプリケーションアドレス判定手段6
05では、解析を行っているアプリケーションアドレス
100h番地が終了アプリケーションアドレス1100
h番地ではないので、アプリケーションコード取り出し
手段606を行う。アプリケーションコード取り出し手
段606は、解析を実行するアドレス100h番地のア
プリケーションプログラムを1命令取り出す。アドレス
100h番地のアプリケーションコード『mov[80
0000h],10h』が取り出される。End application address judging means 6
In 05, the application address 100h being analyzed is the end application address 1100.
Since it is not the address h, the application code extracting means 606 is executed. The application code fetching unit 606 fetches one instruction of the application program at the address 100h for executing the analysis. Application code "mov [80
0000h], 10h ”is taken out.
【0043】次に分岐命令判定手段607は、アプリケ
ーションコード『mov[800000h],10h』
が、分岐命令でないため、アプリケーションコード−タ
ーゲットコード変換手段608を行う。アプリケーショ
ンコード−ターゲットコード変換手段608は、アプリ
ケーションコード『mov[800000h],10
h』を複数のターゲットコード『mov r7,10
h』,『mov[800000h],r7』に変換す
る。Next, the branch instruction determining means 607 uses the application code "mov [800000h], 10h".
However, since it is not a branch instruction, the application code-target code conversion means 608 is executed. The application code-target code conversion means 608 uses the application code “mov [800000h], 10
h ”is used as a plurality of target codes“ mov r7,10
h ”,“ mov [800000h], r7 ”.
【0044】次にアプリケーションアドレス/ターゲッ
トアドレス格納手段609は、解析をしているアプリケ
ーションアドレス100h番地と、そのアプリケーショ
ンアドレス100h番地に対応しているターゲットアド
レス100番地を、図1のアプリケーションアドレス/
ターゲットコードアドレス格納テーブル103に格納し
て、交換したターゲットコード『mov r7,10
h』,『mov[800000h],r7』を、図1の
ターゲットコード格納テーブルに格納して、解析を行う
アプリケーションアドレスとそれに対応するターゲット
アドレスを、それぞれ102h番地と104h番地に更
新する。Next, the application address / target address storing means 609 stores the application address 100h being analyzed and the target address 100 corresponding to the application address 100h as the application address / application address of FIG.
The target code “mov r7,10” stored in the target code address storage table 103 and exchanged
h ”and“ mov [800000h], r7 ”are stored in the target code storage table of FIG. 1, and the application address to be analyzed and the corresponding target address are updated to 102h address and 104h address, respectively.
【0045】次に、終了アプリケーションアドレス判定
手段605では、解析を行っているアプリケーションア
ドレス102h番地が終了アプリケーションアドレス1
100h番地ではないので、アプリケーションコード取
り出し手段606を行う。アプリケーションコード取り
出し手段606は、解析を実行するアドレス102h番
地のアプリケーションプログラムを、1命令取り出す。
アドレス102h番地のアプリケーションコード『br
c !106h』が取り出される。次に分岐命令判定手
段607は、アプリケーションコード『brc !10
6h』が分岐命令で、参照先のアプリケーションアドレ
ス106h番地が、図1のアプリケーションアドレス/
ターゲットアドレス格納テーブル103にないが、その
値106hが終了アプリケーションアドレス1100h
より小さいので、アプリケーションコード−ターゲット
コード変換手段608を行う。Next, in the end application address judging means 605, the application address 102h being analyzed is the end application address 1
Since the address is not 100h, the application code extracting unit 606 is executed. The application code fetching unit 606 fetches one instruction of the application program at the address 102h for executing the analysis.
Application code at address 102h "br
c! 106h ”is taken out. Next, the branch instruction determining means 607 causes the application code “brc! 10
6h ”is a branch instruction, and the reference destination application address 106h is the application address of FIG.
Although it is not in the target address storage table 103, its value 106h is the end application address 1100h.
Since it is smaller, the application code-target code conversion means 608 is performed.
【0046】アプリケーションコード−ターゲットコー
ド変換手段608は、アプリケーションコード『brc
!106h』をターゲットコード『brc !0h』
に変換する。アドレス/ターゲットコード格納手段60
9は、解析をしているアプリケーションアドレス102
h番地と、そのアプリケーションアドレス102h番地
に対応しているターゲットコードアドレス104番地
を、図1のアプリケーションアドレス/ターゲットコー
ドアドレス格納テーブル103に格納して、変換したタ
ーゲットコード『brc !0h』を、図1のターゲッ
トコード格納テーブル104に格納して、参照先のアプ
リケーションアドレス106h番地が図1のアプリケー
ションアドレス/ターゲットアドレス格納テーブル10
3にないので、解析中のターゲットコードアドレス10
4h番地を参照先のアプリケーションアドレス106h
番地と共に、図1の未決定参照情報テーブル105に格
納して、解析を行うアプリケーションアドレスとそれに
対応するターゲットアドレスをそれぞれ104h番地と
106h番地に更新する。The application code-target code conversion means 608 uses the application code "brc".
!! 106h ”is the target code“ brc! 0h ”
Convert to. Address / target code storage means 60
9 is the application address 102 being analyzed
The address h and the target code address 104 corresponding to the application address 102h are stored in the application address / target code address storage table 103 of FIG. 1, and the converted target code “brc! 0h ”is stored in the target code storage table 104 of FIG. 1 and the reference destination application address 106h is the application address / target address storage table 10 of FIG.
Since it is not in 3, the target code address under analysis is 10
Application address 106h that refers to address 4h
The address is stored in the undetermined reference information table 105 of FIG. 1 together with the address, and the application address to be analyzed and the corresponding target address are updated to the address 104h and the address 106h, respectively.
【0047】次に終了アプリケーションアドレス判定手
段605では、解析を行っているアプリケーションアド
レス104h番地が終了アプリケーションアドレス11
00h番地ではないので、アプリケーションコード取り
出し手段606を行う。アプリケーションコード取り出
し手段606は、解析を実行するアドレス104h番地
のアプリケーションプログラムを1命令取り出す。アド
レス104h番地のアプリケーションコード『brnc
!2100h』が取り出される。Next, in the end application address judging means 605, the application address 104h being analyzed is the end application address 11
Since the address is not 00h, the application code fetching unit 606 is executed. The application code fetching unit 606 fetches one instruction of the application program at the address 104h for executing the analysis. Application code "brnc" at address 104h
!! 2100h ”is taken out.
【0048】次に、分岐命令判定手段607は、アプリ
ケーションコード『brnc !2100h』が分岐命
令で、参照先のアプリケーションアドレス2100h番
地が、図1のアプリケーションアドレス/ターゲットア
ドレス格納テーブル103になく、その値2100hが
終了アプリケーションアドレス1100hより大きいの
で、制御用ターゲットコード生成手段611を行う。制
御用ターゲットコード生成手段611は、図1の開始ア
ドレス格納領域106に参照先のアプリケーションアド
レス2100h番地を格納した後に、制御エミュレータ
に戻すターゲットコード『brc !10eh』,『m
ov r7,2100h』,『mov[0c00000
h],r7』,『br[0h]』を生成して、アドレス
/ターゲットコード格納手段612を行う。Next, the branch instruction determining means 607 causes the application code "brnc! 2100h ”is a branch instruction, the referenced application address 2100h is not in the application address / target address storage table 103 of FIG. 1, and the value 2100h is larger than the end application address 1100h. Therefore, the control target code generation means 611 is set. To do. The control target code generation means 611 stores the reference destination application address 2100h in the start address storage area 106 of FIG. 1 and then returns the target code “brc! 10eh ”,“ m
ov r7, 2100h ”,“ mov [0c00000
h], r7 ”,“ br [0h] ”are generated and the address / target code storage means 612 is executed.
【0049】アドレス/ターゲットコード格納手段61
2は、解析をしているアプリケーションアドレス104
h番地と、そのアプリケーションアドレスに対応してい
るターゲットアドレス106h番地を、図1のアプリケ
ーションアドレス/ターゲットコードアドレス格納テー
ブル103に格納して、生成したターゲットコード『b
rc !10eh』,『mov r7,2100h』,
『mov[0c00000h],r7』,『br[0
h]』を、図1のターゲットコード格納テーブルに格納
して、解析を行うアプリケーションアドレスを取り出し
たアプリケーションコードのコードサイズ2hバイト増
やして106h番地とし、アプリケーションアドレスに
対応するターゲットアドレスをターゲットコードのコー
ドサイズ8hバイト増やして10eh番地として、最終
アプリケーションアドレス判定手段605を行う。以上
の繰り返しにより、10feh−10ffh番地の『a
nd r1,10h』まで実行される。Address / target code storage means 61
2 is the application address 104 being analyzed
The address h and the target address 106h corresponding to the application address are stored in the application address / target code address storage table 103 of FIG.
rc! 10eh ”,“ mov r7, 2100h ”,
"Mov [0c00000h], r7", "br [0
h] ”is stored in the target code storage table of FIG. 1 and the code size of the application code for which the analysis is performed is increased by 2h bytes to address 106h. The target address corresponding to the application address is the code of the target code. The final application address determining means 605 is performed by increasing the size by 8 h bytes to make the address 10 eh. By repeating the above, "a" at the address 10feh-10ffh
nd r1, 10h ”.
【0050】その後、終了アプリケーションアドレス判
定手段605で解析を行っているアプリケーションアド
レス1100h番地が終了アプリケーションアドレス1
100h番地なので制御用ターゲットコード生成手段6
13を行う。制御用ターゲットコード生成手段613
は、図1の開始アドレス格納領域106に解析をしてい
るアプリケーションアドレス1100h番地を格納した
後に、制御をエミュレータに戻すターゲットコード『m
ov r7,2100h』,『mov[0c00000
h],r7』,『br[0h]』を生成して、ターゲッ
トコード格納手段614を行う。After that, the end application address 1100h, which is being analyzed by the end application address determination means 605, is the end application address 1
Since the address is 100h, the control target code generation means 6
Do 13. Control target code generation means 613
Stores the application address 1100h, which is being analyzed, in the start address storage area 106 of FIG.
ov r7, 2100h ”,“ mov [0c00000
h], r7 ”, and“ br [0h] ”are generated, and the target code storage unit 614 is performed.
【0051】次にターゲットコード格納手段614は、
生成したターゲットコード『movr7,2100
h』,『mov[0c00000h],r7』,『br
[0h]』を図1のターゲットコード格納テーブル10
4に格納する。この時のアプリケーションアドレス/タ
ーゲットアドレス格納テーブル,ターゲットコード格納
テーブル,未決定参照情報テーブル,開始アドレス格納
領域を図8に示す。次に参照先決定手段615は、図1
の未決定参照テーブル105に格納されているアプリケ
ーションアドレス106h番地を取り出し、図1のアプ
リケーションアドレス/ターゲットアドレス格納テーブ
ル103から、アプリケーションアドレス106h番地
に対応するターゲットアドレス10eh番地を取り出
し、未決定参照情報テーブル105に格納されている上
記アプリケーションアドレス106hに対応するターゲ
ットアドレス104h番地に既に格納されているターゲ
ットコード『brc !0h』を、『brc !10e
h』に変更する。Next, the target code storage means 614
Generated target code "movr7,2100
h ”,“ mov [0c00000h], r7 ”,“ br
[0h] ”is the target code storage table 10 of FIG.
Store in 4. FIG. 8 shows the application address / target address storage table, target code storage table, undecided reference information table, and start address storage area at this time. Next, the reference destination determining means 615 is configured as shown in FIG.
Of the application address 106h stored in the undetermined reference table 105 of FIG. 1, and the target address 10eh corresponding to the application address 106h is retrieved from the application address / target address storage table 103 of FIG. The target code “brc!” Already stored in the target address 104h corresponding to the application address 106h stored in 105. 0h ”is replaced with“ brc! 10e
h ”.
【0052】次にターゲットコード実行手段610は、
変換を開始したアプリケーションアドレス100h番地
に対応するターゲットアドレス100h番地からターゲ
ットコードの実行を行う。ターゲットマシンがターゲッ
トアドレス106h−10dh番地のターゲットコード
『brc !10eh』,『mov r7,2100
h』,『mov [0c00000h],r7』,『b
r[0h]』を実行する際に、キャリーフラグは0なの
で、ターゲットマシンは、ターゲットコード『mov
r7,2100h』,『mov[0c00000h],
r7』,『br[0h]』を実行して、図1の開始アド
レス格納領域のターゲットアドレス0c00000h番
地に2100hを格納して、エミュレータに制御を戻し
て、アプリケーションコード変換判定手段603を行
う。アプリケーションコード変換判定手段603は、ア
プリケーションアドレス2100h番地が図1のアプリ
ケーションアドレス/ターゲットアドレス格納テーブル
103にないので、アプリケーションコード変換判定手
段604を行う。Next, the target code executing means 610
The target code is executed from the target address 100h corresponding to the application address 100h that started the conversion. The target machine is the target code “brc!” Of the target address 106h-10dh. 10eh ”,“ mov r7, 2100
h ”,“ mov [0c00000h], r7 ”,“ b
Since the carry flag is 0 when executing r [0h] ”, the target machine uses the target code“ mov
r7, 2100h ”,“ mov [0c00000h],
r7 ”and“ br [0h] ”are executed, 2100h is stored in the target address 0c00000h of the start address storage area of FIG. 1, control is returned to the emulator, and the application code conversion determination means 603 is performed. Since the application address 2100h is not found in the application address / target address storage table 103 in FIG. 1, the application code conversion determining means 603 executes the application code conversion determining means 604.
【0053】図1の開始アドレス格納領域106から取
り出したアドレス2100h番地を、解析を開始するア
プリケーションアドレスとし、開始アプリケーションア
ドレスから一定のバイトサイズまでのアプリケーション
アドレスが、図1のアプリケーションアドレス/ターゲ
ットアドレス格納テーブル103にないので、開始アプ
リケーションアドレス2100h番地から一定のバイト
サイズ1000hバイトのアプリケーションアドレス3
100h番地を、終了アプリケーションアドレスとし
て、終了アプリケーションアドレス判定手段605を行
う。The address 2100h fetched from the start address storage area 106 of FIG. 1 is used as an application address for starting analysis, and the application address from the start application address to a certain byte size is stored as the application address / target address storage of FIG. Since it is not in the table 103, the application address 3 of a fixed byte size 1000h bytes from the start application address 2100h
The end application address determination unit 605 is performed using the address 100h as the end application address.
【0054】アプリケーションアドレス2100h−3
100hまでのエミュレータの処理は、解析を行ってい
るアプリケーションアドレスが3100hになるまで上
記と同様に図6の『605→606→607→608→
609→605』の繰り返し、あるいは図6の『605
→606→607→611→612→606』の繰り返
しで行われる。アプリケーションアドレスが3100h
になると、上記と同様に図6の『613→614→61
5→610』が行われてターゲットコードの実行が行わ
れる。この時のアプリケーションアドレス/ターゲット
アドレス格納テーブル,ターゲットコード格納テーブ
ル,未決定参照情報テーブル,開始アドレス格納領域を
図9に示す。その後、ターゲットアドレス2102hの
ターゲットコード『ret』の実行を行い、エミュレー
ションを終了する。以上のようにして本実施形態のエミ
ュレーション処理方式は、高速処理を行わせることがで
きるようになる。Application address 2100h-3
As for the processing of the emulator up to 100h, "605 → 606 → 607 → 608 →" of FIG. 6 is performed in the same manner as above until the application address being analyzed becomes 3100h.
609 → 605 ”or“ 605 in FIG.
→ 606 → 607 → 611 → 612 → 606 ”. Application address is 3100h
Then, in the same manner as above, “613 → 614 → 61” in FIG.
5 → 610 ”is executed to execute the target code. FIG. 9 shows the application address / target address storage table, target code storage table, undecided reference information table, and start address storage area at this time. After that, the target code "ret" at the target address 2102h is executed, and the emulation ends. As described above, the emulation processing method of this embodiment can perform high-speed processing.
【0055】具体的な例として、図4のアプリケーショ
ンプログラムを用いて説明する。上述のようにこの例に
おいて、アプリケーションコード1命令は、ターゲット
コード2命令に置き換えられるとして、ターゲットコー
ド1命令の実行が1μsであるとする。さらに、図6の
『603−604−605−606−607−608−
609』の実行が平均400命令であるとする。上述の
ようにエミュレーション処理に要する時間は、「機械語
コードの1回目の実行に要する時間」+「機械語コード
の2回目以降の実行に要する時間」であり、本方式の機
械語コードの1回目の実行に要する時間は、
1(回)×(400(命令)+2(命令))×ofoo
h(命令)×1(μs)=1(回)×(400(命令)
+2(命令))×3840(命令)×1(μs)=1.
545(秒)である。
また、機械語コードの2回目以降の実行に要する時間
は、
4096(回)×2(命令)×ofooh(命令)×1
(μs)=4096(回)×2(命令)×3840(命
令)×1(μs)=31.457(秒)である。
従って本方式で実行に要する時間は、1.545(秒)
+31.457(秒)=33.002(秒)となる。
同じ例の従来の方式で実行に要する時間は、818.8
89(秒)なので、24.8倍の高速化が図れることに
なる。A specific example will be described using the application program shown in FIG. As described above, in this example, assuming that the application code 1 instruction is replaced with the target code 2 instruction, the execution of the target code 1 instruction is 1 μs. Furthermore, “603-604-605-606-607-608-” in FIG.
609 ”is executed 400 instructions on average. As described above, the time required for the emulation processing is “the time required for the first execution of the machine language code” + “the time required for the second and subsequent executions of the machine language code”, which is one of the machine language codes of this method. The time required for the second execution is 1 (times) × (400 (instruction) +2 (instruction)) × ofoo
h (command) x 1 (μs) = 1 (times) x (400 (command)
+2 (instruction) × 3840 (instruction) × 1 (μs) = 1.
It is 545 (seconds). Also, the time required for the second and subsequent executions of the machine language code is 4096 (times) x 2 (instructions) x ofohoh (instructions) x 1
(Μs) = 4096 (times) × 2 (instruction) × 3840 (instruction) × 1 (μs) = 31.457 (seconds). Therefore, the time required for execution with this method is 1.545 (seconds)
It becomes +31.457 (second) = 33.002 (second). The time required for execution in the conventional method of the same example is 818 . 8
Since it is 89 (seconds), the speed can be increased 24.8 times.
【0056】また平均的なプログラム例、たとえば一度
実行したアプリケーションプログラムの実行が平均10
0回として、そのアプリケーションプログラムは100
00命令を持つ場合、従来の方法で実行に要する時間
は、機械語コードの1回目の実行に要する時間が、1
(回)×(200(命令)+2(命令))×10000
(命令)×1(μs)=2.02(秒)となり、機械語
コードの2回目以降の実行に要する時間が、100
(回)×(50(命令)+2(命令))×10000
(命令)×1(μs)=52秒となるので、従来の方式
で実行に要する時間は、2.02(秒)+52(秒)=
54.02(秒)となる。これに対し本方式で実行に要
する時間は、機械語コードの1回目の実行に要する時間
が、1(回)×(400(命令)+2(命令))×10
000(命令)×1(μs)=4.02(秒)となり、
機械語コードの2回目以降の実行に要する時間が、10
0(回)×2(命令)×10000(命令)×1(μ
s)=2(秒)となるので、本方式で実行に要する時
間』=4.02(秒)+2(秒)=6.02(秒)とな
り、8.97倍の高速化が図れることになる。An average program example, for example, an average of 10 executions of application programs executed once
0 times, the application program is 100
With 00 instructions, the time required for execution by the conventional method is 1 time for execution of the machine language code.
(Times) x (200 (commands) + 2 (commands)) x 10000
(Instruction) × 1 (μs) = 2.02 (seconds), and the time required for the second and subsequent executions of the machine language code is 100
(Times) x (50 (commands) + 2 (commands)) x 10000
Since (instruction) × 1 (μs) = 52 seconds, the time required for execution by the conventional method is 2.02 (seconds) +52 (seconds) =
It becomes 54.02 (seconds). On the other hand, the time required for execution by this method is 1 (times) × (400 (instruction) +2 (instruction)) × 10
000 (command) x 1 (μs) = 4.02 (seconds),
The time required for the second and subsequent executions of the machine language code is 10
0 (times) × 2 (instructions) × 10000 (instructions) × 1 (μ
Since s) = 2 (seconds), the time required for execution by this method is “4.02 (seconds) +2 (seconds) = 6.02 (seconds), and it is possible to achieve 8.97 times speedup. Become.
【0057】[0057]
【発明の効果】以上説明したように本発明のエミュレー
ション処理方式は、アプリケーションプログラムが前方
参照命令を持っていることを考慮し、エミュレーション
対象アプリケーションプログラムを一定の単位ごとにホ
ストマシンで動作するターゲットコードに変換して変換
を行ったターゲットコードを実行する動作を繰り返し、
この変換動作においてエミュレーション対象アプリケー
ションコードが分岐命令で、その参照先が変換の段階に
おいて未解決で変換を行う範囲外であれば、制御をター
ゲットコードの実行からエミュレータに戻すターゲット
コードを生成してこれに変換することとしたので、高速
に処理が行えるという効果がある。As described above, according to the emulation processing method of the present invention, in consideration of the fact that the application program has the forward reference instruction, the target code for operating the emulation target application program in the host machine in constant units. Repeat the operation of executing the converted target code after converting to
In this conversion operation, if the emulation target application code is a branch instruction, and the reference destination is unsolved at the conversion stage and is outside the range to be converted, the target code that returns control from execution of the target code to the emulator is generated. Since it is decided to convert to, there is an effect that processing can be performed at high speed.
【図1】本発明のエミュレーション処理方式を実行する
ためのシステムの構成の一実施形態を示すブロック図で
ある。FIG. 1 is a block diagram showing an embodiment of a configuration of a system for executing an emulation processing method of the present invention.
【図2】従来のエミュレーション処理方式を実行するた
めのシステムの構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of a configuration of a system for executing a conventional emulation processing method.
【図3】従来のエミュレーション処理方式の動作を示す
フローチャートである。FIG. 3 is a flowchart showing the operation of a conventional emulation processing method.
【図4】アプリケーションプログラムの具体例を示す図
である。FIG. 4 is a diagram showing a specific example of an application program.
【図5】図2に示すアドレス/ターゲットコード格納テ
ーブルを説明するための図である。5 is a diagram for explaining an address / target code storage table shown in FIG. 2. FIG.
【図6】本実施形態のエミュレーション処理方式の動作
を示すフローチャートである。FIG. 6 is a flowchart showing the operation of the emulation processing method of this embodiment.
【図7】本実施形態を説明するためのアプリケーション
プログラムの具体例を示す図である。FIG. 7 is a diagram showing a specific example of an application program for explaining the present embodiment.
【図8】本実施形態の動作を説明するためのアプリケー
ションアドレス/ターゲットアドレス格納テーブル,タ
ーゲットコード格納テーブル,未決定参照情報テーブ
ル,開始アドレス格納領域の内容を示す図である。FIG. 8 is a diagram showing the contents of an application address / target address storage table, a target code storage table, an undecided reference information table, and a start address storage area for explaining the operation of the present embodiment.
【図9】本実施形態の動作を説明するためのアプリケー
ションアドレス/ターゲットアドレス格納テーブル,タ
ーゲットコード格納テーブル,未決定参照情報テーブ
ル,開始アドレス格納領域の内容を示す図である。FIG. 9 is a diagram showing the contents of an application address / target address storage table, a target code storage table, an undecided reference information table, and a start address storage area for explaining the operation of this embodiment.
101,201 アプリケーションプログラム
102,202 エミュレータ
103 アプリケーションアドレス/ターゲットアドレ
ス格納テーブル
104 ターゲットコード格納テーブル
105 未決定参照情報テーブル
106 開始アドレス格納領域
203 アドレス/ターゲットアドレス格納テーブル
601,10201 プログラムロード手段
602,10202 初期アドレス設定手段
603,10203 アプリケーションコード変換判定
手段
604,10204 変換開始/終了位置設定手段
605,10205 終了アプリケーションアドレス判
定手段
606,10206 アプリケーションコード取り出し
手段
607,10207 分岐命令判定手段
608,10208 アプリケーションコード−ターゲ
ットコード変換手段
609,612,10209 アドレス/ターゲットコ
ード格納手段
610,10210 ターゲットコード実行手段
611,613,10211 制御用ターゲットコード
生成手段
614 ターゲットコード格納手段
615,10212 参照先決定手段101, 201 Application programs 102, 202 Emulator 103 Application address / target address storage table 104 Target code storage table 105 Undetermined reference information table 106 Start address storage area 203 Address / target address storage table 601, 10201 Program loading means 602, 10202 Initial Address setting means 603, 10203 Application code conversion determining means 604, 10204 Conversion start / end position setting means 605, 10205 End application address determining means 606, 10206 Application code extracting means 607, 10207 Branch instruction determining means 608, 10208 Application code-target Code conversion means 609,612, 0209 Address / target code storage means 610,10210 target code execution unit 611,613,10211 control target code generation unit 614 target code storage means 615,10212 reference destination determining means
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−202877(JP,A) 特開 平4−268928(JP,A) 特開 平8−123697(JP,A) 特開 平8−305583(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 ─────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-6-202877 (JP, A) JP-A-4-268928 (JP, A) JP-A-8-123697 (JP, A) JP-A-8- 305583 (JP, A) (58) Fields investigated (Int.Cl. 7 , DB name) G06F 9/44
Claims (3)
れたアプリケーションソフトウェアを異なるアーキテク
チャを有するホストマシン上で実行するエミュレーショ
ン処理システムにおいて、 エミュレータと、前記ホストマシンのメモリに格納され
たアプリケーションアドレス/ターゲットアドレス格納
テーブル,ターゲットコード格納テーブル,未決定参照
情報テーブル,開始アドレス格納領域とで前記エミュレ
ーション処理システムが構成され、 前記エミュレータには、 エミュレーション対象アプリケーションプログラムをホ
ストマシンのメモリにロードするプログラムロード手段
と、 前記開始アドレス格納領域にアプリケーションプログラ
ムの先頭アドレスを設定する初期アドレス設定手段と、 前記アプリケーションアドレス/ターゲットアドレス格
納テーブルに、前記エミュレーション対象プログラムの
実行しようとするアドレスが格納されているか否かを判
定することにより、当該アドレスの前記エミュレーショ
ン対象プログラム機械語コードが変換されているか否か
を判定するアプリケーションコード変換判定手段と、 前記アプリケーションコード変換判定手段によりアプリ
ケーションアドレスが格納されていないときに前記エミ
ュレーション対象プログラムを一定のバイト単位で前記
ホストマシンの機械語コードに変換を行うためにエミュ
レーション対象プログラムの変換開始アドレスと変換終
了アドレスを設定する変換開始/終了位置設定手段と、 前記エミュレーション対象プログラムの変換を実行しよ
うとするアドレスが前記変換終了アドレスか否かを判定
する終了アプリケーションアドレス判定手段と、 前記終了アプリケーションアドレス判定手段により実行
しようとするアドレスが前記変換終了アドレスでないと
判定されたときに前記エミュレーション対象プログラム
から当該アドレスの機械語コードを取り出すアプリケー
ションコード取り出し手段と、 前記アプリケーションコード取り出し手段により取り出
されたエミュレーション対象プログラムの機械語コード
が分岐命令で、参照先アドレスが前記アプリケーション
アドレス/ターゲットアドレス格納テーブルになく、且
つその値が変換終了アドレスより大きいか否かを判定す
る分岐命令判定手段と、 前記分岐命令判定手段により、分岐命令で参照先のアド
レスが、前記アプリケーションアドレス/ターゲットア
ドレス格納テーブルになく、且つその値が変換終了アド
レスより等しい又は大きいと判断されなかったとき、前
記エミュレーション対象プログラムから取り出した機械
語コードを前記ホストマシンの機械語コードに変換する
アプリケーションコード−ターゲットコード変換手段
と、 前記ホストマシンの機械語コードを前記ターゲットコー
ド格納テーブルに格納して、前記エミュレーション対象
プログラムの該当アドレスを前記ホストマシンの機械語
コードの該当アドレスと共に前記アプリケーションアド
レス/ターゲットアドレス格納テーブルに格納して、機
械語コードの参照先が前記アプリケーションアドレス/
ターゲットアドレス格納テーブルにない場合に前記未決
定参照情報テーブルに解析中のホストマシンのアドレス
を参照先のエミュレーション対象プログラムのアドレス
と共に格納するアドレス/ターゲットコード格納手段
と、 前記ターゲットコードアドレス中の機械語コードを実行
するターゲットコード実行手段と、 前記分岐命令判定手段により、分岐命令で参照先のアド
レスが、前記アプリケーションアドレス/ターゲットア
ドレス格納テーブルになく、且つその値が変換終了アド
レスより等しい又は大きいと判断されたとき、あるいは
前記終了アプリケーションアドレス判定手段により、実
行しようとするアドレスが前記変換終了アドレスのと
き、前記ターゲットコードアドレス中の機械語コードの
実行から本エミュレーションに制御を戻すため前記ホス
トマシンの機械語コードを生成する制御用ターゲットコ
ード生成手段と、 前記アドレス/ターゲットコード格納手段により、格納
された未決定参照情報テーブルの解析中のホストマシン
のアドレスにある機械語コードを、参照先のエミュレー
ション対象プログラムのアドレスに該当するホストマシ
ンの機械語コードのアドレスで変更を行う参照先決定手
段と、 を備えたことを特徴とするエミュレーション処理システ
ム。1. In an emulation processing system for executing application software developed for an arbitrary microprogram on a host machine having a different architecture, an emulator and an application address / target address storage stored in a memory of the host machine. the table, the target code storage table, the pending reference information table, start address storage area emulator
And a program loading means for loading the emulation target application program into the memory of the host machine, an initial address setting means for setting the start address of the application program in the start address storage area, and By determining whether or not the address to be executed by the emulation target program is stored in the application address / target address storage table, it is determined whether or not the machine language code of the emulation target program at the address is converted. Application code conversion determining means for determining, and the emulator when the application address is not stored by the application code conversion determining means. A conversion start / end position setting means for setting a conversion start address and a conversion end address of the emulation target program in order to convert the target program into a machine language code of the host machine in a constant byte unit, and the emulation target program conversion and application termination address determining means for determining the address to be executed as to whether or not the conversion end address of the address to be executed by the application termination address determining means is not the end of conversion address
An application code fetching unit that fetches a machine language code of the address from the emulation target program when determined, a machine instruction code of the emulation target program fetched by the application code fetching unit is a branch instruction, and a reference destination address is the A branch instruction determining unit that determines whether the value is not in the application address / target address storage table and is larger than the conversion end address; and the branch instruction determining unit causes the reference address in the branch instruction to be the application address. / If it is not found in the target address storage table and it is not determined that the value is equal to or greater than the conversion end address, the machine language code extracted from the emulation target program is Sutomashin application code into a machine code - the target code converting means, the machine code of the host machine and stored in the target code storage table, machine code of the host machine to the appropriate address of the emulated program Stored in the application address / target address storage table together with the corresponding address of
Address / target code storage means for storing the address of the host machine being analyzed together with the address of the emulation target program of the reference destination in the undetermined reference information table when it is not in the target address storage table, and a machine language in the target code address The target code executing means for executing the code and the branch instruction determining means judge that the reference address in the branch instruction is not in the application address / target address storage table and the value is equal to or larger than the conversion end address. Control, or when the address to be executed is the conversion end address by the end application address determining means, control is performed from execution of the machine language code in the target code address to this emulation. A control target code generation means for generating a machine language code of the host machine for returning, and a machine language code at an address of the host machine under analysis of the undecided reference information table stored by the address / target code storage means. And a reference destination determining means for changing the address of the host machine's machine language code corresponding to the address of the emulation target program of the reference destination, and an emulation processing system characterized by the above-mentioned.
Mu .
れたアプリケーションソフトウェアを異なるアーキテク
チャを有するホストマシン上で実行するエミュレーショ
ン処理システムにおいて、 エミュレータと、前記ホストマシンのメモリに格納され
たアプリケーションアドレス/ターゲットアドレス格納
テーブル,ターゲットコード格納テーブル,未決定参照
情報テーブル,開始アドレス格納領域とで前記エミュレ
ーション処理システムが構成され、 前記エミュレータを、 エ ミュレーション対象アプリケーションプログラムをホ
ストマシンのメモリにロードするロードプログラム、 前記開始アドレス格納領域にアプリケーションプログラ
ムの先頭アドレスを設定する初期アドレス設定プログラ
ム、 前記アプリケーションアドレス/ターゲットアドレス格
納テーブルに、前記エミュレーション対象プログラムの
実行しようとするアドレスが格納されているか否かを判
定することにより、当該アドレスの前記エミュレーショ
ン対象プログラム機械語コードが変換されているか否か
を判定するアプリケーションコード変換判定プログラ
ム、 前記アプリケーションコード変換判定プログラムにより
アプリケーションアドレスが格納されていないときに前
記エミュレーション対象プログラムを一定のバイト単位
で前記ホストマシンの機械語コードに変換を行うために
エミュレーション対象プログラムの変換開始アドレスと
変換終了アドレスを設定する変換開始/終了位置設定プ
ログラム、 前記エミュレーション対象プログラムの変換を実行しよ
うとするアドレスが前記変換終了アドレスか否かを判定
する終了アプリケーションアドレス判定プログラム、 前記終了アプリケーションアドレス判定プログラムによ
り実行しようとするアドレスが前記変換終了アドレスで
ないと判定されたときに前記エミュレーション対象プロ
グラムから当該アドレスの機械語コードを取り出すアプ
リケーションコード取り出しプログラム、 前記アプリケーションコード取り出しプログラムにより
取り出されたエミュレーション対象プログラムの機械語
コードが分岐命令で、参照先アドレスが前記アプリケー
ションアドレス/ターゲットアドレス格納テーブルにな
く、且つその値が変換終了アドレスより大きいか否かを
判定する分岐命令判定プログラム、 前記分岐命令判定プログラムにより、分岐命令で参照先
のアドレスが、前記アプリケーションアドレス/ターゲ
ットアドレス格納テーブルになく、且つその値が変換終
了アドレスより等しい又は大きいと判断されなかったと
き、前記エミュレーション対象プログラムから取り出し
た機械語コードを前記ホストマシンの機械語コードに変
換するアプリケーションコード−ターゲットコード変換
プログラム、 前記ホストマシンの機械語コードを前記ターゲットコー
ド格納テーブルに格納して、前記エミュレーション対象
プログラムの該当アドレスを前記ホストマシンの機械語
コードの該当アドレスと共に前記アプリケーションアド
レス/ターゲットアドレス格納テーブルに格納して、機
械語コードの参照先が前記アプリケーションアドレス/
ターゲットアドレス格納テーブルにない場合に前記未決
定参照情報テーブルに解析中のホストマシンのアドレス
を参照先のエミュレーション対象プログラムのアドレス
と共に格納するアドレス/ターゲットコード格納プログ
ラム、 前記ターゲットコードアドレス中の機械語コードを実行
するターゲットコード実行プログラム、 前記分岐命令判定プログラムにより、分岐命令で参照先
のアドレスが、前記アプリケーションアドレス/ターゲ
ットアドレス格納テーブルになく、且つその値が変換終
了アドレスより等しい又は大きいと判断されたとき、あ
るいは前記終了アプリケーションアドレス判定プログラ
ムにより、実行しようとするアドレスが前記変換終了ア
ドレスのとき、前記ターゲットコードアドレス中の機械
語コードの実行から本エミュレーションに制御を戻すた
め前記ホストマシンの機械語コードを生成する制御用タ
ーゲットコード生成プログラム、 前記アドレス/ターゲットコード格納プログラムによ
り、格納された未決定参照情報テーブルの解析中のホス
トマシンのアドレスにある機械語コードを、参照先のエ
ミュレーション対象プログラムのアドレスに該当するホ
ストマシンの機械語コードのアドレスで変更を行う参照
先決定プログラム、により構成し、前記各プログラム を記録した記録媒体を
備えたことを特徴とするエミュレーション処理方式。2. An emulation processing system for executing application software developed for an arbitrary microprogram on a host machine having a different architecture, wherein an emulator and an application address / target address storage stored in a memory of the host machine. the table, the target code storage table, the pending reference information table, start address storage area emulator
Shon processing system is configured, the emulator load program to load the emulation target application program in the memory of the host machine, the initial address setting program for setting the start address of the application program to the start address storage area, the application address / By determining whether or not the address to be executed by the emulation target program is stored in the target address storage table, it is determined whether or not the machine language code of the emulation target program at the address is converted. An application code conversion determination program, the application code conversion determination program, when the application address is not stored by the application code conversion determination program Conversion start / end position setting program for setting the conversion start address and the conversion end address of the emulation target program in order to convert the target program into the machine language code of the host machine in a constant byte unit, the conversion of the emulation target program address to be run determines whether the conversion end address application termination address determination program, the emulated when an address to be executed is determined to the non-conversion end address by the application termination address determination program An application code fetching program that fetches the machine language code of the address from the program, and an emulation that is fetched by the application code fetching program A branch instruction determination program that determines whether the machine language code of the target program is a branch instruction, the reference address is not in the application address / target address storage table , and the value is greater than the conversion end address, the branch instruction The machine fetched from the emulation target program when the judgment program does not judge that the reference address is not in the application address / target address storage table by the branch instruction and its value is equal to or larger than the conversion end address. application code to convert a word code into machine code of the host machine - the target code converter, stores the machine code of the host machine to the target code storage table, the emulation And storing the corresponding address of the elephant program with the appropriate address of the machine code of the host machine to the application address / target address storing table referenced machine code is the application address /
An address / target code storage program that stores the address of the host machine being analyzed together with the address of the emulation target program of the reference destination in the undetermined reference information table when it is not in the target address storage table, and a machine language code in the target code address A target code execution program for executing the above, the branch instruction determination program determined that the reference address in the branch instruction is not in the application address / target address storage table and the value is equal to or greater than the conversion end address. At this time, or when the address to be executed by the end application address determination program is the conversion end address, execution of the machine language code in the target code address Control target code generation program for generating a machine language code of the host machine to return control to the computer, and the address / target code storage program stores the undetermined reference information table at the address of the host machine under analysis. The machine language code is configured by a reference destination determination program that changes the machine language code address of the host machine corresponding to the address of the emulation target program of the reference destination, and a recording medium recording the respective programs is provided. Characterized emulation processing method.
ョンプログラムを前記ホストマシンで動作するターゲッ
トコードに変換する一定のバイト単位は、1000hバ
イトであることを特徴とする請求項1または2に記載の
エミュレーション処理システム。3. The emulation processing system according to claim 1, wherein a constant byte unit for converting the emulation target application program into a target code operating on the host machine is 1000 h bytes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18716197A JP3495230B2 (en) | 1997-06-30 | 1997-06-30 | Emulation processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18716197A JP3495230B2 (en) | 1997-06-30 | 1997-06-30 | Emulation processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1124940A JPH1124940A (en) | 1999-01-29 |
JP3495230B2 true JP3495230B2 (en) | 2004-02-09 |
Family
ID=16201200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18716197A Expired - Fee Related JP3495230B2 (en) | 1997-06-30 | 1997-06-30 | Emulation processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3495230B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
KR100909703B1 (en) * | 2007-12-17 | 2009-07-29 | 한국전자통신연구원 | Binary value input / output processing device and method |
JP6418696B2 (en) * | 2015-07-23 | 2018-11-07 | 国立大学法人東京工業大学 | Instruction set simulator and method for generating the simulator |
JP2018028777A (en) | 2016-08-17 | 2018-02-22 | Necプラットフォームズ株式会社 | Emulation device, emulation method, and emulation program |
-
1997
- 1997-06-30 JP JP18716197A patent/JP3495230B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1124940A (en) | 1999-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3377419B2 (en) | Instruction string generation method and apparatus, conversion method, and computer | |
US8365151B2 (en) | Multiple stage program recompiler using information flow determination | |
US5896522A (en) | Selective emulation interpretation using transformed instructions | |
EP0709767A1 (en) | Method and apparatus for multiplatform instruction set architecture | |
EP1380946A2 (en) | Program code conversion with reduced translation | |
JPH025139A (en) | Simulation method | |
JPH025140A (en) | Simulation method | |
EP0428560A4 (en) | Machine process for translating programs in binary machine language into another binary machine language | |
US6658655B1 (en) | Method of executing an interpreter program | |
CN104346132A (en) | Control device applied to running of intelligent card virtual machine and intelligent card virtual machine | |
JP4684571B2 (en) | Direct instructions to implement emulation computer technology | |
WO1995008800A1 (en) | Apparatus and method for emulation routine control transfer | |
US7823140B2 (en) | Java bytecode translation method and Java interpreter performing the same | |
JP3495230B2 (en) | Emulation processing method | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
WO2021036173A1 (en) | Method and apparatus for explaining and executing bytecode instruction stream | |
JPH025138A (en) | Simulation method | |
CN117873483A (en) | Method and device for compiling intelligent contract, electronic equipment and storage medium | |
JPS6355636A (en) | Data processing system | |
JP3461185B2 (en) | Method and apparatus for registering source code line number to load module | |
EP4475003A1 (en) | Processing-in-memory memory device and method for performing indirect addressing in the same | |
JPH04268928A (en) | Emulation device and semiconductor device | |
JP2000020319A (en) | Program executing device, control method thereof and storage medium | |
KR880000817B1 (en) | Data processing device and method | |
JP2000231495A (en) | Virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |