(57)【要約】【課題】変換過程において、処理負荷及びメモリサイズの消費量を軽減するエミュレーション装置を提供する。【解決手段】マイクロプロセッサの命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持部と、前記第２種命令列保持部で保持されている命令列において、第２種命令セットにおける分岐命令までを一つの区切りとする命令列を変換対象命令列として、マイクロプロセッサの命令セットに基づいて構成される命令列に変換対象命令列を変換する第２種命令変換部と、前記第２種命令変換部で変換された後の命令列を保持する第１種命令列保持部と、変換対象命令列が前記第２種命令変換部で変換されてから、前記第１種命令列保持部で保持されている命令列を、前記マイクロプロセッサに実行させる第１種命令実行部とを備える。【選択図】　図２
2004038410.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるエミュレーション装置であって、
少なくとも１つ以上の連なる命令を命令列として、
第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持手段と、
前記第２種命令列保持手段で保持されている命令列を第２種命令列とし、
第２種命令セットにおける分岐命令を第２種分岐命令とし、
第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換手段と、
前記第２種命令変換手段で変換された後の命令列を保持する第１種命令列保持手段と、
前記第１種命令列保持手段で保持されている命令列を第１種命令列として、
変換対象命令列が前記第２種命令変換手段で変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行手段と
を備えることを特徴とするエミュレーション装置。
【請求項２】
前記エミュレーション装置は、さらに、
第２種命令セットの命令を第２種命令とし、
変換される前の第２種命令が前記第２種命令列保持手段で保持されているアドレスを第２種命令取り込みアドレスとして、
第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持手段と、
第１種命令セットの命令を第１種命令とし、
実行される前の第１種命令が前記第１種命令列保持手段で保持されているアドレスを第１種命令取り込みアドレスとして、
第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持手段と
を備え、
前記第２種命令変換手段は、
呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
変換対象命令列を変換し、
前記第１種命令実行手段は、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させる
ことを特徴とする請求項１記載のエミュレーション装置。
【請求項３】
前記エミュレーション装置は、さらに、
変換された後の第１種命令が前記第１種命令列保持手段で保持されるアドレスを第１種命令書き込みアドレスとして、
第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持手段と、
前記第１種命令列保持手段で保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、
第１種命令終端アドレスを保持する第１種命令終端アドレス保持手段と、
第１種命令セットにおける分岐命令を第１種分岐命令とし、
分岐命令により分岐する先のアドレスを分岐先アドレスとし、
第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、
第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、
第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、
分岐先アドレス対応表を保持する分岐先アドレス対応表保持手段と、
第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、
変換ルールセットを保持する変換ルールセット保持手段と
を備え、
前記第２種命令変換手段は、
第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行手段を呼び出す
ことを特徴とする請求項２記載のエミュレーション装置。
【請求項４】
前記エミュレーション装置は、さらに、
変換される前の第２種分岐命令が前記第２種命令列保持手段で保持されているアドレスを第２種保持先アドレスとし、
第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、
代替命令が前記第１種命令列保持手段で保持されるアドレスを第１種保持先アドレスとし、
第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、
保持先アドレス対応表を保持する保持先アドレス対応表保持手段と、
呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、
書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行手段を呼び出す代替命令書込手段と
を備え、
前記第２種命令変換手段は、
分岐先アドレス登録条件を判定した結果が偽であるならば、
前記代替命令書込手段を呼び出し、
前記第１種命令実行手段は、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が偽であるならば、
当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、
第１種分岐命令識別条件を判定した結果が真であるならば、
当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、
第１種分岐命令識別条件を判定した結果が偽であるならば、
前記マイクロプロセッサに、当該第１種命令を実行させる
ことを特徴とする請求項３記載のエミュレーション装置。
【請求項５】
前記エミュレーション装置は、さらに、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、
保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、
取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が偽であるならば、
次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、
第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、
分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、
設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第２種命令変換手段を呼び出す代替命令書換手段
を備え、
前記代替命令書込手段は、
前記代替命令書換手段を呼び出す第１種命令を代替命令として書き込み、
前記第１種命令実行手段は、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が真であるならば、
前記代替命令書換手段を呼び出す
ことを特徴とする請求項４記載のエミュレーション装置。
【請求項６】
前記代替命令書換手段は、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第１種命令実行手段を呼び出す
ことを特徴とする請求項５記載のエミュレーション装置。
【請求項７】
マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させる装置を制御するエミュレーション方法であって、
少なくとも１つ以上の連なる命令を命令列として、
第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持ステップと、
前記第２種命令列保持ステップで保持されている命令列を第２種命令列とし、
第２種命令セットにおける分岐命令を第２種分岐命令とし、
第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、
前記第２種命令変換ステップで変換された後の命令列を保持する第１種命令列保持ステップと、
前記第１種命令列保持ステップで保持されている命令列を第１種命令列として、
変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップと
を含むことを特徴とするエミュレーション方法。
【請求項８】
前記エミュレーション方法は、さらに、
第２種命令セットの命令を第２種命令とし、
変換される前の第２種命令が前記第２種命令列保持ステップで保持されているアドレスを第２種命令取り込みアドレスとして、
第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持ステップと、
第１種命令セットの命令を第１種命令とし、
実行される前の第１種命令が前記第１種命令列保持ステップで保持されているアドレスを第１種命令取り込みアドレスとして、
第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持ステップと
を含み、
前記第２種命令変換ステップは、
呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
変換対象命令列を変換し、
前記第１種命令実行ステップは、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させる
ことを特徴とする請求項７記載のエミュレーション方法。
【請求項９】
前記エミュレーション方法は、さらに、
変換された後の第１種命令が前記第１種命令列保持ステップで保持されるアドレスを第１種命令書き込みアドレスとして、
第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ステップと、
前記第１種命令列保持ステップで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、
第１種命令終端アドレスを保持する第１種命令終端アドレス保持ステップと、
第１種命令セットにおける分岐命令を第１種分岐命令とし、
分岐命令により分岐する先のアドレスを分岐先アドレスとし、
第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、
第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、
第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、
分岐先アドレス対応表を保持する分岐先アドレス対応表保持ステップと、
第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、
変換ルールセットを保持する変換ルールセット保持ステップと
を含み、
前記第２種命令変換ステップは、
第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行ステップを呼び出す
ことを特徴とする請求項８記載のエミュレーション方法。
【請求項１０】
前記エミュレーション方法は、さらに、
変換される前の第２種分岐命令が前記第２種命令列保持ステップで保持されているアドレスを第２種保持先アドレスとし、
第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、
代替命令が前記第１種命令列保持ステップで保持されるアドレスを第１種保持先アドレスとし、
第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、
保持先アドレス対応表を保持する保持先アドレス対応表保持ステップと、
呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、
書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行ステップを呼び出す代替命令書込ステップと
を含み、
前記第２種命令変換ステップは、
分岐先アドレス登録条件を判定した結果が偽であるならば、
前記代替命令書込ステップを呼び出し、
前記第１種命令実行ステップは、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が偽であるならば、
当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、
第１種分岐命令識別条件を判定した結果が真であるならば、
当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、
第１種分岐命令識別条件を判定した結果が偽であるならば、
前記マイクロプロセッサに、当該第１種命令を実行させる
ことを特徴とする請求項９記載のエミュレーション方法。
【請求項１１】
前記エミュレーション方法は、さらに、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、
保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、
取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が偽であるならば、
次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、
第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、
分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、
設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第２種命令変換ステップを呼び出す代替命令書換ステップ
を含み、
前記代替命令書込ステップは、
前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、
前記第１種命令実行ステップは、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が真であるならば、
前記代替命令書換ステップを呼び出す
ことを特徴とする請求項１０記載のエミュレーション方法。
【請求項１２】
前記代替命令書換ステップは、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第１種命令実行ステップを呼び出す
ことを特徴とする請求項１１記載のエミュレーション方法。
【請求項１３】
マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるコンピュータを制御するエミュレーションプログラムであって、
少なくとも１つ以上の連なる命令を命令列として、
第２種命令セットに基づいて作製されたプログラムを構成する命令列が保持される記憶領域を割り当てる第２種命令列割当ステップと、
前記第２種命令列割当ステップで割り当てられた記憶領域を第２種命令列記憶領域とし、
前記第２種命令列記憶領域に保持されている命令列を第２種命令列とし、
第２種命令セットにおける分岐命令を第２種分岐命令とし、
第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、
前記第２種命令変換ステップで変換された後の命令列が保持される記憶領域を割り当てる第１種命令列割当ステップと、
前記第１種命令列割当ステップで割り当てられた記憶領域を第１種命令列記憶領域とし、
前記第１種命令列記憶領域に保持されている命令列を第１種命令列として、
変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップと
をコンピュータに実行させることを特徴とするエミュレーションプログラム。
【請求項１４】
前記エミュレーションプログラムは、さらに、
第２種命令セットの命令を第２種命令とし、
変換される前の第２種命令が前記第２種命令列記憶領域に保持されているアドレスを第２種命令取り込みアドレスとして、
第２種命令取り込みアドレスが保持される記憶領域を割り当てる第２種命令取り込みアドレス割当ステップと、
第１種命令セットの命令を第１種命令とし、
実行される前の第１種命令が前記第１種命令列記憶領域に保持されているアドレスを第１種命令取り込みアドレスとして、
第１種命令取り込みアドレスが保持される記憶領域を割り当てる第１種命令取り込みアドレス割当ステップと
をコンピュータに実行させ、
前記第２種命令変換ステップは、
呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、
変換対象命令列を変換し、
前記第１種命令実行ステップは、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させる
ことを特徴とする請求項１３記載のエミュレーションプログラム。
【請求項１５】
前記エミュレーションプログラムは、さらに、
変換された後の第１種命令が前記第１種命令列記憶領域に保持されるアドレスを第１種命令書き込みアドレスとして、
第１種命令書き込みアドレスが保持される記憶領域を割り当てる第１種命令書き込みアドレス割当ステップと、
前記第１種命令列記憶領域に保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、
第１種命令終端アドレスが保持される記憶領域を割り当てる第１種命令終端アドレス割当ステップと、
第１種命令セットにおける分岐命令を第１種分岐命令とし、
分岐命令により分岐する先のアドレスを分岐先アドレスとし、
第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、
第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、
第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、
分岐先アドレス対応表が保持される記憶領域を割り当てる分岐先アドレス対応表割当ステップと、
第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、
変換ルールセットが保持される記憶領域を割り当てる変換ルールセット割当ステップと
をコンピュータに実行させ、
前記第２種命令変換ステップは、
第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行ステップを呼び出す
ことを特徴とする請求項１４記載のエミュレーションプログラム。
【請求項１６】
前記エミュレーションプログラムは、さらに、
変換される前の第２種分岐命令が前記第２種命令列記憶領域に保持されているアドレスを第２種保持先アドレスとし、
第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、
代替命令が前記第１種命令列記憶領域に保持されるアドレスを第１種保持先アドレスとし、
第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、
保持先アドレス対応表が保持される記憶領域を割り当てる保持先アドレス対応表割当ステップと、
呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、
書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、
保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、
更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、
前記第１種命令実行ステップを呼び出す代替命令書込ステップと
をコンピュータに実行させ、
前記第２種命令変換ステップは、
分岐先アドレス登録条件を判定した結果が偽であるならば、
前記代替命令書込ステップを呼び出し、
前記第１種命令実行ステップは、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が偽であるならば、
当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、
第１種分岐命令識別条件を判定した結果が真であるならば、
当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、
第１種分岐命令識別条件を判定した結果が偽であるならば、
前記マイクロプロセッサに、当該第１種命令を実行させる
ことを特徴とする請求項１５記載のエミュレーションプログラム。
【請求項１７】
前記エミュレーションプログラムは、さらに、
呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、
保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、
取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、
分岐先アドレス登録条件を判定し、
分岐先アドレス登録条件を判定した結果が偽であるならば、
次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、
第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、
分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、
設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第２種命令変換ステップを呼び出す代替命令書換ステップ
をコンピュータに実行させ、
前記代替命令書込ステップは、
前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、
第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、
代替命令識別条件を判定した結果が真であるならば、
前記代替命令書換ステップを呼び出す
ことを特徴とする請求項１６記載のエミュレーションプログラム。
【請求項１８】
前記代替命令書換ステップは、
分岐先アドレス登録条件を判定した結果が真であるならば、
分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、
設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、
変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、
更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、
取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、
保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、
前記第１種命令実行ステップを呼び出す
ことを特徴とする請求項１７記載のエミュレーションプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エミュレータ、特に、マイクロプロセッサの命令セットとは異なる命令セットにより作製されたプログラムを擬似的に動作させる技術に関する。
【０００２】
【従来の技術】
従来、マイクロプロセッサの命令セットとは異なる命令セットにより作製されたプログラムを、マイクロプロセッサに擬似的に動作させるプログラムとして、エミュレータがある。例えば、特開平１１−２４９４０号公報においては、エミュレータに関する以下の技術が公開されている。
【０００３】
当該公報におけるエミュレータは、擬似的に動作させるプログラムを所定サイズ（４Ｋバイト）ずつ変換し実行する。
具体的には、命令を変換するたびに、変換前の命令（以下、アプリケーションコードと呼称する）が保持されているアドレス（以下、アプリケーションアドレスと呼称する）、及び変換後の命令（以下、ターゲットコードと呼称する）が保持されるアドレス（以下、ターゲットアドレスと呼称する）を対応付けてアプリケーションアドレス／ターゲットアドレス格納テーブル（以下、アドレステーブルと略称する）に登録する。そして、分岐命令を変換する際に、アドレステーブルを参照し、変換前の分岐命令で参照されるアプリケーションアドレスが、アドレステーブルに登録されているか否かを判定する。
【０００４】
判定した結果、登録されている場合には、登録されているアプリケーションアドレスと対応付けられてアドレステーブルに登録されているターゲットアドレスに分岐する分岐命令に、変換前の分岐命令を変換する。変換後の分岐命令を、ターゲットコード格納テーブルに格納する。
登録されていない場合には、ターゲットコードを実行する実行過程からアプリケーションコードを変換する変換過程に制御を遷移する制御用ターゲットコードに、変換前の分岐命令を変換する。制御用ターゲットコードを、ターゲットコード格納テーブルに格納する。また、変換前の分岐命令が保持されているアプリケーションアドレスと制御用ターゲットコードが保持されるターゲットアドレスとを対応付けて未決定参照情報テーブル（以下、未決定参照テーブルと略称する）に登録する。
【０００５】
そして、所定のサイズの命令を変換すると、制御用ターゲットコードを、ターゲットコード格納テーブルに格納し、未決定参照テーブルに登録されているアプリケーションアドレスが、アドレステーブルに登録されているか否かを判定する。
判定した結果、登録されている場合には、アプリケーションアドレスと対応付けられてアドレステーブルに登録されているターゲットアドレスに分岐する分岐命令に、書換対象ターゲットコードを書き換える。
【０００６】
ここで、書換対象ターゲットコードとは、アプリケーションアドレスと対応付けられて未決定参照テーブルに登録されているターゲットアドレスに保持されている制御用ターゲットコードを指す。
そして、ターゲットコードを実行する実行過程に制御を遷移する。
【０００７】
【発明が解決しようとする課題】
しかしながら、当該公報におけるエミュレータは、変換過程において、命令を変換するたびに、アドレステーブルに、アプリケーションアドレス、及びターゲットアドレスを対応付けて登録する登録処理を必要とする。そして、登録処理により登録されたアプリケーションアドレス、及びターゲットアドレスは、全て必要とされる訳ではない。結果、登録処理は、処理負荷となり、メモリサイズを消費するという問題がある。
【０００８】
また、制御用ターゲットコードが格納される場合として、変換前の分岐命令で参照されるアプリケーションアドレスが、アドレステーブルに登録されていない場合と、所定のサイズの命令を変換した後の場合とがある。即ち、ターゲットコードを実行する動作からアプリケーションコードを変換する動作に制御が遷移する場合が多いと、遷移に伴う時間を消費する機会が多くなるという問題がある。
【０００９】
本発明は上記問題に鑑みてなされたものであり、変換過程において、処理負荷及びメモリサイズの消費量を軽減するエミュレーション装置、エミュレーション方法、及びエミュレーションプログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係わるエミュレーション装置は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるエミュレーション装置であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持手段と、前記第２種命令列保持手段で保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換手段と、前記第２種命令変換手段で変換された後の命令列を保持する第１種命令列保持手段と、前記第１種命令列保持手段で保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換手段で変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行手段とを備えるとする。
【００１１】
加えて、前記エミュレーション装置は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持手段で保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持手段と、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持手段で保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持手段とを備え、前記第２種命令変換手段は、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行手段は、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【００１２】
加えて、前記エミュレーション装置は、さらに、変換された後の第１種命令が前記第１種命令列保持手段で保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持手段と、前記第１種命令列保持手段で保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持手段と、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持手段と、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持手段とを備え、前記第２種命令変換手段は、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行手段を呼び出すとしてもよい。
【００１３】
加えて、前記エミュレーション装置は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持手段で保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持手段で保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持手段と、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行手段を呼び出す代替命令書込手段とを備え、前記第２種命令変換手段は、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込手段を呼び出し、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【００１４】
加えて、前記エミュレーション装置は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出す代替命令書換手段を備え、前記代替命令書込手段は、前記代替命令書換手段を呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換手段を呼び出すとしてもよい。
【００１５】
加えて、前記代替命令書換手段は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【００１６】
本発明に係わるエミュレーション方法は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させる装置を制御するエミュレーション方法であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持ステップと、前記第２種命令列保持ステップで保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、前記第２種命令変換ステップで変換された後の命令列を保持する第１種命令列保持ステップと、前記第１種命令列保持ステップで保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップとを含むとする。
【００１７】
加えて、前記エミュレーション方法は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持ステップで保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持ステップと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持ステップで保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持ステップとを含み、前記第２種命令変換ステップは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ステップは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【００１８】
加えて、前記エミュレーション方法は、さらに、変換された後の第１種命令が前記第１種命令列保持ステップで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ステップと、前記第１種命令列保持ステップで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ステップとを含み、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【００１９】
加えて、前記エミュレーション方法は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ステップで保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持ステップで保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ステップと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとを含み、前記第２種命令変換ステップは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【００２０】
加えて、前記エミュレーション方法は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出す代替命令書換ステップを含み、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【００２１】
加えて、前記代替命令書換ステップは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【００２２】
本発明に係わるエミュレーションプログラムは、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるコンピュータを制御するエミュレーションプログラムであって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列が保持される記憶領域を割り当てる第２種命令列割当ステップと、前記第２種命令列割当ステップで割り当てられた記憶領域を第２種命令列記憶領域とし、前記第２種命令列記憶領域に保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、前記第２種命令変換ステップで変換された後の命令列が保持される記憶領域を割り当てる第１種命令列割当ステップと、前記第１種命令列割当ステップで割り当てられた記憶領域を第１種命令列記憶領域とし、前記第１種命令列記憶領域に保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップとをコンピュータに実行させるとする。
【００２３】
加えて、前記エミュレーションプログラムは、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列記憶領域に保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスが保持される記憶領域を割り当てる第２種命令取り込みアドレス割当ステップと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列記憶領域に保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスが保持される記憶領域を割り当てる第１種命令取り込みアドレス割当ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ステップは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【００２４】
加えて、前記エミュレーションプログラムは、さらに、変換された後の第１種命令が前記第１種命令列記憶領域に保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスが保持される記憶領域を割り当てる第１種命令書き込みアドレス割当ステップと、前記第１種命令列記憶領域に保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスが保持される記憶領域を割り当てる第１種命令終端アドレス割当ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表が保持される記憶領域を割り当てる分岐先アドレス対応表割当ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットが保持される記憶領域を割り当てる変換ルールセット割当ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【００２５】
加えて、前記エミュレーションプログラムは、さらに、変換される前の第２種分岐命令が前記第２種命令列記憶領域に保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列記憶領域に保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表が保持される記憶領域を割り当てる保持先アドレス対応表割当ステップと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【００２６】
加えて、前記エミュレーションプログラムは、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出す代替命令書換ステップをコンピュータに実行させ、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【００２７】
加えて、前記代替命令書換ステップは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【００２８】
本発明に係わるエミュレーション回路情報は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるデバイスをプログラマブルロジックデバイスに形成させるエミュレーション回路情報であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持ユニットと、前記第２種命令列保持ユニットで保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ユニットと、前記第２種命令変換ユニットで変換された後の命令列を保持する第１種命令列保持ユニットと、前記第１種命令列保持ユニットで保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ユニットで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ユニットとをプログラマブルロジックデバイスに形成させるとする。
【００２９】
加えて、前記エミュレーション回路情報は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持ユニットで保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持ユニットと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持ユニットで保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ユニットは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【００３０】
加えて、前記エミュレーション回路情報は、さらに、変換された後の第１種命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ユニットと、前記第１種命令列保持ユニットで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ユニットと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ユニットと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【００３１】
加えて、前記エミュレーション回路情報は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ユニットで保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ユニットと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ユニットを呼び出す代替命令書込ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ユニットを呼び出し、前記第１種命令実行ユニットは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【００３２】
加えて、前記エミュレーション回路情報は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ユニットを呼び出す代替命令書換ユニットをプログラマブルロジックデバイスに形成させ、前記代替命令書込ユニットは、前記代替命令書換ユニットを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ユニットは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ユニットを呼び出すとしてもよい。
【００３３】
加えて、前記代替命令書換ユニットは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【００３４】
【発明の実施の形態】
（実施の形態１）
以下、本発明の実施の形態１について、図面を参照しながら説明する。
なお、本発明の実施の形態を通して、エミュレーション装置といえば、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）などを備えるコンピュータ等の一般のハードウェアシステムにおいて、エミュレーションプログラムを実行することにより実現される装置を指す。
【００３５】
ここで、エミュレーションプログラムとは、ＣＰＵの命令セット（以下、第１種命令セットと呼称する）とは異なる命令セット（以下、第２種命令セットと呼称する）により作製されたプログラムを、エミュレーション装置において擬似的に動作させるプログラムを指す。即ち、エミュレーションプログラムとは、第２種命令セットの命令（以下、第２種命令と呼称し、略す場合にはＳＩと表記する）を第１種命令セットの命令（以下、第１種命令と呼称し、略す場合にはＦＩと表記する）に変換し、変換後の第１種命令を実行するプログラムである。
【００３６】
なお、各命令はバイナリコードであるが、説明するにあたりニモニックにより表記する。また、話を簡潔にするために、第２種命令のバイナリコード長、及び第１種命令のバイナリコード長は３２ビット（４バイト）とする。以下、単数の場合には”命令”、複数の場合には”命令列”、場合に応じて単数又は複数になる場合には”命令（列）”と表記する。
【００３７】
図１（ａ）は、第２種命令セットにおける分岐命令の一例を示し、（ｂ）は、第１種命令セットにおける分岐命令の一例を示す図である。
図１（ａ）（ｂ）にみられるように、第２種分岐命令一覧表のカラムＣ１０１に第２種命令セットにおける分岐命令（以下、第２種分岐命令と呼称する）、カラムＣ１０２に説明、カラムＣ１０３に形式、カラムＣ１０４に機能を示している。同様に、第１種分岐命令一覧表のカラムＣ１０５に、第１種命令セットにおける分岐命令（以下、第１種分岐命令と呼称する）、カラムＣ１０６に説明、カラムＣ１０７に形式、カラム１０８に機能を示している。
【００３８】
ここで、分岐命令とは、条件コード、及び符号付きオフセットを含むバイナリコードを指す。
ここで、分岐先アドレスとは、以下の式（ｅｘｐ１）に基づいて計算されるアドレスを指す。
（ｅｘｐ１）分岐先アドレス＝分岐命令が保持されているアドレス
＋先読みする命令のサイズ＋ターゲットオフセット
ここで、ターゲットオフセットとは、分岐命令から分岐する先までの相対アドレスを指す。
【００３９】
以下、話を簡潔にするために、先読みする命令はなしとする。
なお、”ＰＣ”はプログラムカウンタ、”Ｚ”は状態フラグのＺビット、”Ｖ”は状態フラグのＶビット、”Ｎ”は状態フラグのＮビットを示している。
ここで、プログラムカウンタとは、進行中の命令のアドレスを保持するレジスタを指す。
【００４０】
ここで、状態フラグとは、Ｎビット、Ｚビット、Ｃビット、及びＶビットを含むビット列を指す。
ここで、Ｎビットとは、状態フラグを更新した第１種命令の実行結果が、負の結果を生成したか否かを示すビットを指す。
ここで、Ｚビットとは、状態フラグを更新した第１種命令の実行結果が、零の結果を生成したか否かを示すビットを指す。
【００４１】
ここで、Ｃビットとは、状態フラグを変更した第１種命令の実行結果が、算術計算またはシフタにより桁上げ出力を生成したか否かを示すビットを指す。
ここで、Ｖビットとは、状態フラグを変更した第１種命令の実行結果が、符号ビットにあふれを生成したか否かを示すビットを指す。
例えば、命令”ＪＥＱ”は、形式”ＪＥＱ　ｒａ，　ｒｂ，　ｏｆｆｓｅｔ”の様に、”ｏｆｆｓｅｔ値を左に２ビットシフトした値分増加したアドレス”に”、”ｒａ、ｒｂが等しいときに分岐する”第２種分岐命令であることを示している。
【００４２】
命令”Ｂ”は、形式”Ｂ　ｏｆｆｓｅｔ”の様に、”ｏｆｆｓｅｔ値を左に２ビットシフトした値分増加したアドレス”に、”つねに分岐する”第１種分岐命令であることを示している。
なお、第２種命令セットにおける条件無しの分岐命令（例えば、分岐命令”Ｊ”）を、第２種無条件分岐命令（以下、略す場合にはＳＵＩと表記する）と呼称する。同様に、第１種命令セットにおける条件無しの分岐命令（例えば、分岐命令”Ｂ”）を、第１種無条件分岐命令（以下、略す場合にはＦＵＩと表記する）と呼称する。
【００４３】
また、第２種命令セットにおける条件付きの分岐命令（例えば、分岐命令”ＪＥＱ”など）を、第２種条件付分岐命令（以下、略す場合にはＳＣＩと表記する）と呼称する。同様に、第１種命令セットにおける条件付きの分岐命令（例えば、分岐命令”ＢＥＱ”など）を、第１種条件付分岐命令（以下、略す場合にはＦＣＩと表記する）と呼称する。
【００４４】
また、第２種無条件分岐命令、及び第２種条件付分岐命令を総称する際には、第２種分岐命令（以下、略す場合にはＳＢＩと表記する）と呼称する。同様に、第１種無条件分岐命令、及び第１種条件付分岐命令を総称する際には、第１種分岐命令（以下、略す場合にはＳＢＩと表記する）と呼称する。
そして、実施の形態１においては、第２種無条件分岐命令”Ｂ”から第１種無条件分岐命令”Ｊ”に変換する場合について説明する。
【００４５】
（実施の形態１におけるエミュレーション装置の構成）
図２は、実施の形態１におけるエミュレーション装置の構成を示すブロック図である。
同図にみられるように、エミュレーション装置１００は、第２種命令列保持部１０１、第１種命令列保持部１０２、変換ルールセット保持部１０３、分岐先アドレス対応表保持部１０４、保持先アドレス対応表保持部１０５、第２種命令取り込みアドレス保持部１１１、第１種命令書き込みアドレス保持部１１２、第１種命令取り込みアドレス保持部１１３、第１種命令終端アドレス保持部１１４、第２種命令変換部１２１、代替命令書込部１２２、第１種命令実行部１２３、及び代替命令書換部１２４から構成される。
【００４６】
なお、実線で示される矢印は、コード、アドレスなどのデータの流れを示し、波線で示される矢印は、ＣＰＵの状態遷移を示している。
第２種命令列保持部１０１は、第２種命令列を保持する。
ここで、第２種命令列とは、第２種命令セットに基づいて作製されたプログラムを指す。
【００４７】
第１種命令列保持部１０２は、第１種命令列を保持する。
ここで、第１種命令列とは、変換ルールセットに基づいて変換された命令列を指す。
変換ルールセット保持部１０３は、変換ルールセットを保持する。
ここで、変換ルールセットとは、第２種命令列を第１種命令列に変換する際の規則が示された表を指す。
【００４８】
分岐先アドレス対応表保持部１０４は、分岐先アドレス対応表を保持する。
ここで、分岐先アドレス対応表とは、第１種分岐先アドレス、及び第２種分岐先アドレスが対応付けられて登録される表を指す。
ここで、第２種分岐先アドレスとは、第２種分岐命令の分岐先アドレスを指す。第１種分岐先アドレスとは、第１種分岐命令の分岐先アドレスを指す。
【００４９】
保持先アドレス対応表保持部１０５は、保持先アドレス対応表を保持する。
ここで、保持先アドレス対応表とは、第１種保持先アドレス、及び第２種保持先アドレスが対応付けられて登録される表を指す。
ここで、第１種保持先アドレスとは、代替命令（以下、略す場合にはＦＳＩと表記する）が第１種命令列保持部１０２で保持されるアドレスを指す。
【００５０】
ここで、代替命令とは、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を指す。具体的には、代替命令書換部１２４を呼び出す第１種命令を指す。
ここで、第２種保持先アドレスとは、変換される前の第２種分岐命令が第２種命令列保持部１０１で保持されているアドレスを指す。
【００５１】
なお、図３に、分岐先アドレス対応表、及び保持先アドレス対応表の一例を示している。
第２種命令取り込みアドレス保持部１１１は、第２種命令取り込みアドレス（以下、略す場合には、ＳＦＡと表記する）を保持する。
ここで、第２種命令取り込みアドレスとは、第２種命令列保持部１０１から取り込まれる第２種命令の取り込み開始アドレスを指す。
【００５２】
第１種命令書き込みアドレス保持部１１２は、第１種命令書き込みアドレス（以下、略す場合には、ＦＷＡと表記する）を保持する。
ここで、第１種命令書き込みアドレスとは、第１種命令列保持部１０２に書き込まれる第１種命令の書き込み開始アドレスを指す。
第１種命令取り込みアドレス保持部１１３は、第１種命令取り込みアドレス（以下、略す場合には、ＦＦＡと表記する）を保持する。
【００５３】
ここで、第１種命令取り込みアドレスとは、第１種命令列保持部１０２から取り込まれる第１種命令の取り込み開始アドレスを指す。
第１種命令終端アドレス保持部１１４は、第１種命令終端アドレス（以下、略す場合には、ＦＴＡと表記する）を保持する。
ここで、第１種命令終端アドレスとは、第１種命令列保持部１０２に書き込まれた第１種命令の終端アドレスを指す。
【００５４】
第２種命令変換部１２１は、第２種命令取り込みアドレスから、第２種命令を取り込む。取り込んだ第２種命令のサイズ分増加したアドレスに、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
ここで、変換停止条件とは、解読した第２種命令が変換終端コードであるならば真とし、否ならば偽とする条件を指す。
【００５５】
ここで、変換終端コードとは、第２種命令セットで作製されたプログラムの終端を示すコードを指す。
さらに、第２種命令変換部１２１は、変換停止条件を判定した結果が真であるならば、第１種命令実行部１２３を呼び出す。偽であるならば、第２種分岐命令識別条件を判定する。
【００５６】
ここで、第２種分岐命令識別条件とは、解読した第２種命令が第２種分岐命令であるならば真とし、否ならば偽とする条件を指す。
さらに、第２種命令変換部１２１は、第２種分岐命令識別条件を判定した結果が真であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【００５７】
ここで、分岐先アドレス登録条件とは、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする条件を指す。
さらに、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。第１種命令書き込みアドレスから、変換後の第１種命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する。そして、第１種命令実行部１２３を呼び出す。
【００５８】
また、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、代替命令書込部１２２を呼び出す。
また、第２種命令変換部１２１は、第２種分岐命令識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する。第１種命令書き込みアドレスから、変換後の第１種命令（列）を書き込む。書き込んだ第１種命令（列）のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【００５９】
代替命令書込部１２２は、第１種命令書き込みアドレスから、代替命令を書き込む。書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
さらに、代替命令書込部１２２は、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する。第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定する。保持先アドレス対応表に、設定した第１種保持先アドレス、及び設定した第２種保持先アドレスを対応付けたレコードを登録する。更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する。そして、第１種命令実行部１２３を呼び出す。
【００６０】
第１種命令実行部１２３は、第１種命令取り込みアドレスから、第１種命令を取り込む。取り込んだ第１種命令のサイズ分増加したアドレスに、第１種命令取り込みアドレスを更新する。取り込んだ第１種命令を解読する。解読した第１種命令に応じて、オペランドを取り込む。そして、実行停止条件を判定する。
ここで、実行停止条件とは、解読した第１種命令が実行終端コードであるならば真とし、否ならば偽とする条件を指す。
【００６１】
ここで、実行終端コードとは、第２種命令変換部１２１を呼び出す第１種命令を指す。
さらに、第１種命令実行部１２３は、実行停止条件を判定した結果が真であるならば、第２種命令変換部１２１を呼び出す。偽であるならば、代替命令識別条件を判定する。
【００６２】
ここで、代替命令識別条件とは、解読した第１種命令が代替命令であるならば真とし、否ならば偽とする条件を指す。
さらに、第１種命令実行部１２３は、代替命令識別条件を判定した結果が真であるならば、代替命令書換部１２４を呼び出す。偽であるならば、第１種分岐命令識別条件を判定する。
【００６３】
ここで、第１種分岐命令識別条件とは、解読した第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする条件を指す。
さらに、第１種命令実行部１２３は、第１種分岐命令識別条件を判定した結果が真であるならば、解読した第１種命令（第１種分岐命令）の分岐先アドレス（第１種分岐先アドレス）を計算する。計算した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。
【００６４】
また、第１種命令実行部１２３は、第１種分岐命令識別条件を判定した結果が偽であるならば、解読した第１種命令を実行する。
代替命令書換部１２４は、第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する。設定した第１種保持先アドレスを検索キーとして、保持先アドレス対応表を検索する。そして、保持先アドレス登録条件を判定する。
【００６５】
ここで、保持先アドレス登録条件とは、検索キーと一致する第１種保持先アドレスが、保持先アドレス対応表に登録されているならば真とし、否ならば偽とする条件を指す。
さらに、代替命令書換部１２４は、保持先アドレス登録条件を判定した結果が真であるならば、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得する。取得した第２種保持先アドレスに、第２種命令取り込みアドレスを更新する。更新した第２種命令取り込みアドレスから、第２種命令を取り込む。取り込んだ第２種命令のサイズ分増加したアドレスに、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。
【００６６】
さらに、代替命令書換部１２４は、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
さらに、代替命令書換部１２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。
【００６７】
さらに、代替命令書換部１２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【００６８】
さらに、代替命令書換部１２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、取得した第２種保持先アドレス、及び設定した第１種保持先アドレスが対応付けられているレコードを削除する。そして、第１種命令実行部１２３を呼び出す。
また、代替命令書換部１２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズ（以下、略す場合にはＣ＿Ｓｉｚｅと表記する）を加算したアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【００６９】
ここで、クリアランスサイズとは、次に書き込まれる命令列までの空きサイズを指す。
さらに、代替命令書換部１２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【００７０】
さらに、代替命令書換部１２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、取得した第２種保持先アドレス、及び設定した第１種保持先アドレスが対応付けられているレコードを削除する。そして、第２種命令変換部１２１を呼び出す。
【００７１】
なお、代替命令書換部１２４は、保持先アドレス登録条件を判定した結果が偽であるならば、強制終了する。
（補足事項）
なお、第２種命令変換部１２１、及び代替命令書換部１２４は、第２種分岐命令を第１種分岐命令に変換する際には、以下の式（ｅｘｐ２）に基づいて、第２種分岐命令が保持されているアドレス（ＳＦＡ−Ｓｉｚｅ＿ｏｆ＿ＳＢＩ）、及び第２種分岐命令の符号付きオフセット（以下、略す場合には、ＳＯＳと表記する）から、第２種分岐先アドレス（以下、略す場合には、ＳＢＡと表記する）を計算する。なお、命令のサイズを示す際には、命令を略した表記に、”Ｓｉｚｅ＿ｏｆ＿”の接頭語を付加して表記する。
【００７２】
（ｅｘｐ２）　ＳＢＡ＝ＳＦＡ−Ｓｉｚｅ＿ｏｆ＿ＳＢＩ＋ＳＯＳ＜＜２
そして、以下の式（ｅｘｐ３）に基づいて、第２種分岐先アドレスと対応付けられて分岐先アドレス対応表に登録されている第１種分岐先アドレス（以下、略す場合には、ＦＢＡと表記する）、及び第１種命令書き込みアドレスから、第１種分岐命令の符号付きオフセット（以下、略す場合には、ＦＯＳと表記する）を計算する。
【００７３】
（ｅｘｐ３）　ＦＯＳ＝（ＦＢＡ−ＦＷＡ）＞＞２
なお、第１種命令実行部１２３は、第１種分岐命令を実行する際には、以下の式（ｅｘｐ４）に基づいて、第１種分岐命令が保持されているアドレス（ＦＦＡ−Ｓｉｚｅ＿ｏｆ＿ＦＢＩ）、及び第１種分岐命令の符号付きオフセットから、第１種分岐先アドレスを計算する。
【００７４】
（ｅｘｐ４）　ＦＢＡ＝ＦＦＡ−Ｓｉｚｅ＿ｏｆ＿ＦＢＩ＋ＦＯＳ＜＜２
なお、式（ｅｘｐ２）、（ｅｘｐ３）、（ｅｘｐ４）において、符号付きオフセットを左に２ビットシフトした値が、（ｅｘｐ１）におけるターゲットオフセットとなる。
なお、エミュレーション装置１００における各構成要素は、エミュレーションプログラムによって実現される。具体的には、第２種命令列保持部１０１〜保持先アドレス対応表保持部１０５、第２種命令取り込みアドレス保持部１１１〜第１種命令終端アドレス保持部１１４は、エミュレーションプログラムの動作に伴い、ＣＰＵ及びＲＡＭに確保された記憶領域を指す。第２種命令変換部１２１〜代替命令書換部１２４は、エミュレーションプログラムの各処理を実行中のＣＰＵを指す。
【００７５】
（分岐先アドレス対応表、及び保持先アドレス対応表の例）
図３（ａ）は、分岐先アドレス対応表の一例を示し、（ｂ）は、保持先アドレス対応表の一例を示す図である。
図３（ａ）にみられるように、分岐先アドレス対応表のレコードは、フィールドＦ１０１、及びフィールドＦ１０２から構成される。そして、フィールドＦ１０１に第２種分岐先アドレス、フィールドＦ１０２に第１種分岐先アドレスが対応付けられていることを示している。
【００７６】
図３（ｂ）にみられるように、保持先アドレス対応表のレコードは、フィールドＦ１０３、及びフィールドＦ１０４から構成される。そして、フィールドＦ１０３に第１種保持先アドレス、フィールドＦ１０４に第２種保持先アドレスが対応付けられていることを示している。
（エミュレーション装置１００の動作）
以上のように構成されたエミュレーション装置１００について、その動作を説明する。
【００７７】
（実施の形態１におけるエミュレーション処理）
図４〜１０は、実施の形態１におけるエミュレーション処理を示すフローチャート図である。
図４にみられるように、第２種命令取り込みアドレス保持部１１１、第１種命令書き込みアドレス保持部１１２、第１種命令取り込みアドレス保持部１１３、及び第１種命令終端アドレス保持部１１４は、それぞれ、第２種命令取り込みアドレス、第１種命令書き込みアドレス、第１種命令取り込みアドレス、及び第１種命令終端アドレスを初期化する（ステップＳ１０１）。
【００７８】
第２種命令変換部１２１は、第２種命令取り込みアドレスから、第２種命令を取り込む（ステップＳ１１１）。取り込んだ第２種命令のサイズ分増加したアドレスに、第２種命令取り込みアドレスを更新する（ステップＳ１１２）。取り込んだ第２種命令を解読する（ステップＳ１１３）。解読した第２種命令に応じて、オペランドを取り込む（ステップＳ１１４）。そして、変換停止条件を判定する（ステップＳ１１５）。
【００７９】
次に、第２種命令変換部１２１は、変換停止条件を判定した結果が真であるならば、第１種命令実行部１２３を呼び出す（ステップＳ１４１に遷移する）。偽であるならば、第２種分岐命令識別条件を判定する（ステップＳ１１６）。
次に、第２種命令変換部１２１は、第２種分岐命令識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する（ステップＳ１１７）。第１種命令書込アドレスから、変換後の第１種命令（列）を書き込む（ステップＳ１１８）。書き込んだ第１種命令（列）のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１１９）。そして、ステップＳ１１１に遷移する。
【００８０】
図５にみられるように、第２種命令変換部１２１は、第２種分岐命令識別条件を判定した結果が真であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する（ステップＳ１２１）。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ１２２）。そして、分岐先アドレス登録条件を判定する（ステップＳ１２３）。
【００８１】
次に、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ１２４）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する（ステップＳ１２５）。第１種命令書込アドレスから、変換後の第１種命令（列）を書き込む（ステップＳ１２６）。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１２７）。更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する（ステップＳ１２８）。そして、第１種命令実行部１２３を呼び出す（ステップＳ１４１に遷移する）。
【００８２】
また、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、代替命令書込部１２２を呼び出す（ステップＳ１３１に遷移する）。
図６にみられるように、代替命令書込部１２２は、第１種命令書き込みアドレスから、代替命令を書き込む（ステップＳ１３１）。書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１３２）。
【００８３】
次に、代替命令書込部１２２は、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する（ステップＳ１３３）。第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定する（ステップＳ１３４）。保持先アドレス対応表に、設定した第１種保持先アドレス、及び設定した第２種保持先アドレスを対応付けたレコードを登録する（ステップＳ１３５）。更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する（ステップＳ１３６）。そして、第１種命令実行部１２３を呼び出す（ステップＳ１４１に遷移する）。
【００８４】
図７にみられるように、第１種命令実行部１２３は、第１種命令取り込みアドレスから、第１種命令を取り込む（ステップＳ１４１）。取り込んだ第１種命令のサイズ分増加したアドレスに、第１種命令取り込みアドレスを更新する（ステップＳ１４２）。取り込んだ第１種命令を解読する（ステップＳ１４３）。解読した第１種命令に応じて、オペランドを取り込む（ステップＳ１４４）。そして、実行停止条件を判定する（ステップＳ１４５）。
【００８５】
次に、第１種命令実行部１２３は、実行停止条件を判定した結果が真であるならば、第２種命令変換部１２１を呼び出す（ステップＳ１１１に遷移する）。偽であるならば、代替命令識別条件を判定する（ステップＳ１４６）。
次に、第１種命令実行部１２３は、代替命令識別条件を判定した結果が真であるならば、代替命令書換部１２４を呼び出す（ステップＳ１５１に遷移する）。偽であるならば、第１種分岐命令識別条件を判定する（ステップＳ１４７）。
【００８６】
次に、第１種命令実行部１２３は、第１種分岐命令識別条件を判定した結果が偽であるならば、解読した第１種命令を実行する（ステップＳ１４８）。そして、ステップＳ１４１に遷移する。
また、第１種命令実行部１２３は、第１種分岐命令識別条件を判定した結果が真であるならば、解読した第１種命令（第１種分岐命令）の分岐先アドレス（第１種分岐先アドレス）を計算する（ステップＳ１４９）。計算した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ１５０）。そして、ステップ１４１に遷移する。
【００８７】
図８にみられるように、代替命令書換部１２４は、第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する（ステップＳ１５１）。設定した第１種保持先アドレスを検索キーとして、保持先アドレス対応表を検索する（ステップＳ１５２）。そして、保持先アドレス登録条件を判定する（ステップＳ１５３）。
【００８８】
次に、代替命令書換部１２４は、保持先アドレス登録条件を判定した結果が真であるならば、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得する（ステップＳ１５４）。取得した第２種保持先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ１５５）。更新した第２種命令取り込みアドレスから、第２種命令を取り込む（ステップＳ１５６）。取り込んだ第２種命令のサイズ分増加したアドレスに、第２種命令取り込みアドレスを更新する（ステップＳ１５７）。取り込んだ第２種命令を解読する（ステップＳ１５８）。
【００８９】
図９にみられるように、代替命令書換部１２４は、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する（ステップＳ１６１）。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ１６２）。そして、分岐先アドレス登録条件を判定する（ステップＳ１６３）。
【００９０】
さらに、代替命令書換部１２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ１６４）。設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１６５）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する（ステップＳ１６６）。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む（ステップＳ１６７）。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１６８）。
【００９１】
次に、代替命令書換部１２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ１６９）。保持先アドレス対応表から、取得した第２種保持先アドレス、及び設定した第１種保持先アドレスが対応付けられているレコードを削除する（ステップＳ１７０）。そして、第１種命令実行部１２３を呼び出す（ステップＳ１４１に遷移する）。
【００９２】
図１０にみられるように、代替命令書換部１２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する（ステップＳ１７１）。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ１７２）。設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１７３）。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する（ステップＳ１７４）。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む（ステップＳ１７５）。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１７６）。
【００９３】
次に、代替命令書換部１２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ１７７）。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ１７８）。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ１７９）。保持先アドレス対応表から、取得した第２種保持先アドレス、及び設定した第１種保持先アドレスが対応付けられているレコードを削除する（ステップＳ１８０）。そして、第２種命令変換部１２１を呼び出す（ステップＳ１１１に遷移する）。
【００９４】
（実施の形態１における動作例）
ここで、エミュレーション装置１００の具体的な動作について説明する。
以下、図面の参照にあたり、第２種分岐命令を”ＳＢＩ”、第２種分岐命令以外の第２種命令を”ＳＩ”、第１種分岐命令を”ＦＢＩ”、第１種分岐命令以外の第１種命令を”ＦＩ”、代替命令を”ＦＳＩ”と表記する。複数の場合には、＃１，＃２，・・・のように索引を付加して表記する。また、同一の命令を示す場合には、同一の索引を付加する。
【００９５】
次に、第２種命令列保持部１０１に対して、０ｘ０１００４０００ｈ〜０ｘ０１０４７ｆｆｈの記憶領域が確保されているとする。実線で囲まれた記憶領域に保持されている命令は、取り込まれたことを示す。波線で囲まれた記憶領域に保持されている命令は、取り込まれていないことを示す。
次に、第１種命令列保持部１０２に対して、０ｘ０１００６０００ｈ〜０ｘ０１００６ｆｆｆｈの記憶領域が確保されているとする。実線で囲まれた記憶領域に保持されている命令は、書き込まれたことを示す。
【００９６】
さらに、第２種命令取り込みアドレス、及び第１種命令書き込みアドレスを白抜きの三角印により示す。また、白抜きの中に示す数字は、アドレスの遷移する順番を示す。
さらに、第１種命令取り込みアドレスを黒塗りの三角印により示す。
なお、実施の形態１におけるクリアランスサイズは１６バイト（４命令分）とする。
【００９７】
図１１〜１４は、エミュレーション装置の動作例を示す模式図である。
以下、ＳＢＩ＃１の分岐先アドレスは、分岐先アドレス対応表に登録されていないとする。また、ＳＢＩ＃２の分岐先アドレスは、登録されているとする。
なお、ＳＢＩ＃２の分岐先アドレス（０ｘ０１００４４８８ｈ）と対応付けられている第１種分岐先アドレスを、”０ｘ０１００６６４０ｈ”とする。
【００９８】
図１１にみられるように、第２種命令変換部１２１は、第２種命令取り込みアドレスから、第２種命令（ＳＩ＃８まで）を取り込む。取り込んだ第２種命令のサイズ分増加したアドレス（０ｘ０１００４４２０ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【００９９】
次に、第２種命令変換部１２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。さらに、第２種分岐命令識別条件を判定した結果が偽であることにより、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する。第１種命令書き込みアドレスから、変換後の第１種命令（列）（ＦＩ＃１２まで）を書き込む。書き込んだ第１種命令（列）のサイズ分増加したアドレス（０ｘ０１００６８７０ｈ）に、第１種命令書き込みアドレスを更新する。
【０１００】
続いて、第２種命令変換部１２１は、第２種命令取り込みアドレス（０ｘ０１００４４２０ｈ）から、第２種命令（ＳＢＩ＃１）を取り込む。取り込んだ第２種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００４４２４ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０１０１】
次に、第２種命令変換部１２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。さらに、第２種分岐命令識別条件を判定した結果が真であることにより、解読した第２種命令（第２種分岐命令）の分岐先アドレスを計算する。計算した第２種分岐先アドレス（０ｘ０１００４４４４ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０１０２】
次に、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が偽であることにより、代替命令書込部１２２を呼び出す。
図１２にみられるように、代替命令書込部１２２は、第１種命令書き込みアドレス（０ｘ０１００６８７０ｈ）から、代替命令（ＦＳＩ）を書き込む。書き込んだ代替命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６８７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０１０３】
次に、代替命令書込部１２２は、更新した第１種命令書き込みアドレス（０ｘ０１００６８７４ｈ）から代替命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６８７０ｈ）に、第１種保持先アドレスを設定する。第２種命令取り込みアドレス（０ｘ０１００４４２４ｈ）から第２種分岐命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００４４２０ｈ）に、第２種保持先アドレスを設定する。保持先アドレス対応表に、設定した第１種保持先アドレス（０ｘ０１００６８７０ｈ）、及び設定した第２種保持先アドレス（０ｘ０１００４４２０ｈ）を対応付けたレコードを登録する。更新した第１種命令書き込みアドレス（０ｘ０１００６８７４ｈ）に、第１種命令終端アドレスを更新する。そして、第１種命令実行部１２３を呼び出す。
【０１０４】
第１種命令実行部１２３は、第１種命令取り込みアドレスから、第１種命令（ＦＩ＃１２まで）を取り込む。取り込んだ第１種命令のサイズ分増加したアドレス（０ｘ０１００６８７０ｈ）に、第１種命令取り込みアドレスを更新する。取り込んだ第１種命令を解読する。解読した第１種命令に応じて、オペランドを取り込む。そして、実行停止条件を判定する。
【０１０５】
次に、第１種命令実行部１２３は、実行停止条件を判定した結果が偽であることにより、代替命令識別条件を判定する。さらに、代替命令識別条件を判定した結果が偽であることにより、第１種分岐命令識別条件を判定する。さらに、第１種分岐命令識別条件を判定した結果が偽であることにより、解読した第１種命令（ＦＩ＃１２まで）を実行する。
【０１０６】
続いて、第１種命令実行部１２３は、第１種命令取り込みアドレス（０ｘ０１００６８７０ｈ）から、第１種命令（ＦＳＩ）を取り込む。取り込んだ第１種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６８７４ｈ）に、第１種命令取り込みアドレスを更新する。取り込んだ第１種命令（ＦＳＩ）を解読する。解読した第１種命令（代替命令）に応じて、オペランドを取り込む。そして、実行停止条件を判定する。
【０１０７】
次に、第１種命令実行部１２３は、実行停止条件を判定した結果が偽であることにより、代替命令識別条件を判定する。さらに、代替命令識別条件を判定した結果が真であることにより、代替命令書換部１２４を呼び出す。
図１３にみられるように、代替命令書換部１２４は、第１種命令取り込みアドレス（０ｘ０１００６８７４ｈ）から代替命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６８７０ｈ）に、第１種保持先アドレスを設定する。設定した第１種保持先アドレス（０ｘ０１００６８７０ｈ）を検索キーとして、保持先アドレス対応表を検索する。そして、保持先アドレス登録条件を判定する。
【０１０８】
次に、代替命令書換部１２４は、保持先アドレス登録条件を判定した結果が真であることにより、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレス（０ｘ０１００６８７０ｈ）と対応付けられている第２種保持先アドレス（０ｘ０１００４４２０ｈ）を取得する。取得した第２種保持先アドレス（０ｘ０１００４４２０ｈ）に、第２種命令取り込みアドレスを更新する。更新した第２種命令取り込みアドレス（０ｘ０１００４４２０ｈ）から、第２種命令（ＳＢＩ＃１）を取り込む。取り込んだ第２種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００４４２４ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。
【０１０９】
次に、代替命令書換部１２４は、解読した第２種命令（第２種分岐命令）の分岐先アドレスを計算する。計算した第２種分岐先アドレス（０ｘ０１００４４４４ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
次に、代替命令書換部１２４は、分岐先アドレス登録条件を判定した結果が偽であることにより、第１種命令終端アドレス（０ｘ０１００６８７４ｈ）からクリアランスサイズ（１６バイト）を加算したアドレス（０ｘ０１００６８８４ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス（０ｘ０１００４４４４ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６８８４ｈ）を対応付けたレコードを登録する。
【０１１０】
次に、代替命令書換部１２４は、設定した第１種保持先アドレス（０ｘ０１００６８７０ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレス（０ｘ０１００６８８４ｈ）に分岐する第１種分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６８７０ｈ）から、変換後の第１種分岐命令（ＦＢＩ＃１）を書き込む。書き込んだ第１種分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６８７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０１１１】
次に、代替命令書換部１２４は、計算した第２種分岐先アドレス（０ｘ０１００４４４４ｈ）に、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６８８４ｈ）に、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６８８４ｈ）に、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、取得した第２種保持先アドレス（０ｘ０１００４４２０ｈ）、及び設定した第１種保持先アドレス（０ｘ０１００６８７０ｈ）が対応付けられているレコードを削除する。そして、第２種命令変換部１２１を呼び出す。
【０１１２】
図１４にみられるように、第２種命令変換部１２１は、第２種命令取り込みアドレス（０ｘ０１００４４４４ｈ）から、第２種命令（ＳＩ＃１７〜＃２４）を取り込む。取り込んだ第２種命令のサイズ分増加したアドレス（０ｘ０１００４４６４ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０１１３】
次に、第２種命令変換部１２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。さらに、第２種分岐命令識別条件を判定した結果が偽であることにより、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する。第１種命令書き込みアドレス（０ｘ０１００６８８４ｈ）から、変換後の第１種命令（列）（ＦＩ＃１３〜＃２８）を書き込む。書き込んだ第１種命令（列）のサイズ分増加したアドレス（０ｘ０１００６８ｃ４ｈ）に、第１種命令書き込みアドレスを更新する。
【０１１４】
続いて、第２種命令変換部１２１は、第２種命令取り込みアドレス（０ｘ０１００４４６４ｈ）から、第２種命令（ＳＢＩ＃２）を取り込む。取り込んだ第２種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００４４６８ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０１１５】
次に、第２種命令変換部１２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。さらに、第２種分岐命令識別条件を判定した結果が真であることにより、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレス（０ｘ０１００４４８８ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０１１６】
次に、第２種命令変換部１２１は、分岐先アドレス登録条件を判定した結果が真であることにより、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４４８８ｈ）と対応付けられている第１種分岐先アドレス（０ｘ０１００６６４０ｈ）を取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６６４０ｈ）に分岐する第１種分岐命令に、解読した第２種分岐命令（ＳＢＩ＃２）を変換する。第１種命令書き込みアドレス（０ｘ０１００６８ｃ４ｈ）から、変換後の第１種分岐命令（ＦＢＩ＃２）を書き込む。書き込んだ第１種分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６８ｃ８ｈ）に、第１種命令書き込みアドレスを更新する。更新した第１種命令書き込みアドレス（０ｘ０１００６８ｃ８ｈ）に、第１種命令終端アドレスを更新する。そして、第１種命令実行部１２３を呼び出す。
【０１１７】
（実施の形態１におけるまとめ）
以上のように、実施の形態１におけるエミュレーション装置１００は、分岐先アドレス対応表に、変換前の第２種分岐命令の分岐先アドレス、及び変換後の第１種分岐命令の分岐先アドレスを対応付けたレコードを登録する。
そして、第２種命令変換部１２１において、解読した第２種分岐命令を変換する際に、解読した第２種分岐命令の分岐先アドレスが分岐先アドレス対応表に登録されているか否かを判定する。そして、判定結果に応じて、以下に示す２つの場合に分けて、解読した第２種分岐命令を変換する。
【０１１８】
（変換処理−１）解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部１２３を呼び出す。
【０１１９】
（変換処理−２）解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されていない場合には、解読した第２種分岐命令を変換せずに、代替命令書込部１２２を呼び出す。
また、代替命令書換部１２４において、代替命令を書き換える際に、解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されているか否かを判定する。
【０１２０】
そして、判定結果に応じて、以下に示す２つの場合に分けて、解読した第２種分岐命令を変換する。
（書換処理−１）解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部１２３を呼び出す。
【０１２１】
（書換処理−２）解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されていない場合には、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。そして、第２種命令変換部１２１を呼び出す。
【０１２２】
（実施の形態１におけるその他）
なお、代替命令書換部１２４において、取得した第１種分岐先アドレス、又は設定した第１種分岐先アドレスの代わりに、設定した第１種保持先アドレスに、第１種命令取り込みアドレスを更新するとしてもよい。
なお、第２種命令列保持部１０１で保持されている第２種分岐命令が、全て第２種無条件分岐命令である場合には、第１種命令列保持部１０２で保持されている代替命令は、常に、１つであり、且つ代替命令が保持されているアドレスの次のアドレスが第１種命令終端アドレスとなる。即ち、第１種命令終端アドレスは、第１種保持先アドレスから代替命令のサイズを加算したアドレスと同一となる。
【０１２３】
これにより、第１種保持先アドレス、及び第２種保持先アドレスが対応付けられて保持先アドレス対応表に登録されているレコードは、多くとも１つあればよい。
また、第１種分岐先アドレスを設定する際に、第１種命令終端アドレスの代わりに、第１種保持先アドレスを利用するとしてもよい。これに伴い、第１種命令終端アドレス保持部１１４を省略するとしてもよい。
（実施の形態２）
以下、本発明の実施の形態２について、図面を参照しながら説明する。なお、実施の形態１と同一の構成要素、動作については同一の符号を付して、その説明を省略する。
【０１２４】
なお、実施の形態２においては、第２種条件付分岐命令から第１種条件付分岐命令を含む第１種命令列に変換する場合について説明する。
（実施の形態２における変換ルールセットの例）
図１５は、実施の形態２において、第２種分岐命令から第１種分岐命令に変換する際の変換ルールセットの一例を示す図である。
【０１２５】
同図にみられるように、変換ルールセットのカラムＣ２０１に変換前の第２種分岐命令、カラムＣ２０２に変換後の第１種前置命令列、カラムＣ２０３に変換後の第１種分岐命令、カラムＣ２０４に変換後の第１種逆条件分岐命令、カラムＣ２０５に変換後の第１種無条件分岐命令が示されている。
ここで、第１種逆条件分岐命令（以下、略す場合にはＦＩＩと表記する）とは、分岐する条件が逆の関係にあたる第１種条件付分岐命令（例えば、分岐命令”ＢＥＱ”に対する分岐命令”ＢＮＥ”など）を指す。
【０１２６】
例えば、第２種条件付分岐命令”ＪＥＱ　ｒａ，　ｒｂ，　ｏｆｆｓｅｔ１”は、変換する際の条件に応じて、第１種命令列に変換する際には、”ＬＤＲ　ｒ１，　［ｒａ］”〜”ＣＭＰ　ｒ１，　ｒ２”に変換することを示している。第１種条件付分岐命令に変換する際には、命令”ＢＥＱ　ｏｆｆｓｅｔ１”に変換することを示している。第１種逆条件分岐命令に変換する際には、命令”ＢＮＥｏｆｆｓｅｔ１”に変換することを示している。第１種無条件分岐命令に変換する際には、命令”Ｂ　ｏｆｆｓｅｔ１”に変換することを示している。
【０１２７】
（実施の形態２におけるエミュレーション装置の構成）
図１６は、実施の形態２におけるエミュレーション装置の構成を示すブロック図である。
同図にみられるように、エミュレーション装置２００は、エミュレーション装置１００と比べて、新規に、第１種命令状態フラグ保持部２１５、及び第２種命令状態フラグ保持部２１６を備える。また、変換ルールセット保持部１０３、保持先アドレス対応表保持部１０５、第２種命令変換部１２１、代替命令書込部１２２、第１種命令実行部１２３、及び代替命令書換部１２４の代わりに、変換ルールセット保持部２０３、保持先アドレス対応表保持部２０５、第２種命令変換部２２１、代替命令書込部２２２、第１種命令実行部２２３、及び代替命令書換部２２４を備える点が異なる。
【０１２８】
第１種命令状態フラグ保持部２１５は、第１種命令実行部２２３で実行された第１種命令の結果状態が示される状態フラグを保持する。
第２種命令状態フラグ保持部２１６は、状態フラグ転送命令（以下、略す場合にはＳＴＩと表記する）によって第１種命令状態フラグ保持部２１５から転送された状態フラグを保持する。
【０１２９】
ここで、状態フラグ転送命令とは、第２種命令状態フラグ保持部２１６に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを転送する第１種命令を指す。
以下、略す場合には、第１種命令状態フラグ保持部２１５で保持されている状態フラグを”ＦＳＦ”と表記する。また、第２種命令状態フラグ保持部２１６で保持されている状態フラグを”ＳＳＦ”と表記する。
【０１３０】
変換ルールセット保持部２０３は、図１５に示す実施の形態２における変換ルールセットを保持する。
保持先アドレス対応表保持部２０５は、保持先アドレス対応表（以下、略す場合にはＲＡＴと表記する）を保持する。
ここで、保持先アドレス対応表とは、第１種保持先アドレス、第２種保持先アドレス、書換フラグ（以下、略す場合にはＲＦと表記する）、及び分岐フラグ（以下、略す場合にはＢＦと表記する）が対応付けられて登録される表を指す。
【０１３１】
ここで、書換フラグとは、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを指す。
ここで、分岐フラグとは、”ＦＡＬＳＥ（０）”であるならば、第２種保持先アドレスに保持されている第２種分岐命令の次のアドレスに、”ＴＲＵＥ（０以外）”であるならば、分岐先アドレスに分岐したことを示すフラグを指す。
【０１３２】
なお、図１７に、実施の形態２における保持先アドレス対応表の一例を示している。
第２種命令変換部２２１は、第２種分岐命令識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、第１種命令列に、解読した第２種命令（第２種分岐命令）を変換する。第１種命令書き込みアドレスから、変換後の第１種前置命令列（第１種分岐命令、及び第１種無条件分岐命令を除く第１種命令列）を書き込む。書き込んだ第１種命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１３３】
さらに、第２種命令変換部２２１は、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
さらに、第２種命令変換部２２１は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１３４】
さらに、第２種命令変換部２２１は、更新した第２種命令取り込みアドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件（以下、前述の分岐先アドレス登録条件と区別するために、無条件分岐先アドレス登録条件と呼称する）を判定する。
さらに、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する。そして、第１種命令実行部２２３を呼び出す。
【０１３５】
また、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する。更新した第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【０１３６】
また、第２種命令変換部２２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件（以下、前述の分岐先アドレス登録条件と区別するために、逆条件分岐先アドレス登録条件と呼称する）を判定する。
【０１３７】
さらに、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１３８】
さらに、第２種命令変換部２２１は、更新した第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する。
【０１３９】
また、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が偽であるならば、代替命令書込部２２２を呼び出す。
代替命令書込部２２２は、第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込む。書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１４０】
さらに、代替命令書込部２２２は、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する。第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定する。”ＦＡＬＳＥ（０）”に、書換フラグを設定する。”ＦＡＬＳＥ（０）”に、分岐フラグを設定する。保持先アドレス対応表に、設定した第１種保持先アドレス、設定した第２種保持先アドレス、設定した書換フラグ、及び設定した分岐フラグを対応付けたレコードを登録する。
【０１４１】
さらに、代替命令書込部２２２は、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
第１種命令実行部２２３は、代替命令識別条件を判定した結果が真であるならば、代替命令書換部２２４を呼び出す。偽であるならば、状態フラグ転送命令識別条件を判定する。
【０１４２】
ここで、状態フラグ転送命令識別条件とは、解読した第１種命令が状態フラグ転送命令であるならば真とし、否ならば偽とする条件を指す。
さらに、第１種命令実行部２２３は、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ保持部２１６に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを転送する。状態フラグ転送命令識別条件を判定した結果が偽であるならば、第１種分岐命令識別条件を判定する。
【０１４３】
さらに、第１種命令実行部２２３は、第１種分岐命令識別条件を判定した結果が真であるならば、第１種分岐条件を判定する。
ここで、第１種分岐条件とは、”解読した第１種命令が第１種無条件分岐命令である”、及び”解読した第１種命令が第１種条件付分岐命令であり、且つ第１種命令状態フラグ保持部２１５で保持されている状態フラグに基づいて、解読した第１種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする条件を指す。
【０１４４】
さらに、第１種命令実行部２２３は、第１種分岐条件を判定した結果が真であるならば、解読した第１種命令（第１種分岐命令）の分岐先アドレス（第１種分岐先アドレス）を計算する。計算した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。
また、第１種命令実行部２２３は、第１種分岐命令識別条件を判定した結果が偽であるならば、解読した第１種命令を実行する。実行した第１種命令の結果を示す状態に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを更新する。
【０１４５】
代替命令書換部２２４は、保持先アドレス登録条件を判定した結果が真であるならば、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得する。取得した第２種保持先アドレスに、第２種命令取り込みアドレスを更新する。更新した第２種命令取り込みアドレスから、第２種命令を取り込む。取り込んだ第２種命令のサイズ分増加したアドレスに、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。
【０１４６】
さらに、代替命令書換部２２４は、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている書換フラグを取得する。そして、書換フラグ識別条件を判定する。
ここで、書換フラグ識別条件とは、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする条件を指す。
【０１４７】
さらに、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている分岐フラグを取得する。そして、分岐フラグ識別条件を判定する。
ここで、分岐フラグ識別条件とは、取得した分岐フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする条件を指す。
【０１４８】
さらに、代替命令書換部２２４は、分岐フラグ識別条件を判定した結果が真であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する。設定した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
さらに、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。
【０１４９】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１５０】
さらに、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する。そして、第１種命令実行部２２３を呼び出す。
また、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【０１５１】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１５２】
さらに、代替命令書換部２２４は、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する。そして、第２種命令変換部２２１を呼び出す。
【０１５３】
また、代替命令書換部２２４は、分岐フラグ識別条件を判定した結果が偽であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０１５４】
さらに、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１５５】
さらに、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する。そして、第１種命令実行部２２３を呼び出す。
また、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【０１５６】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１５７】
さらに、代替命令書換部２２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する。そして、第２種命令変換部２２１を呼び出す。
【０１５８】
また、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であるならば、第２種分岐条件を判定する。
ここで、第２種分岐条件とは、”解読した第２種命令が第２種無条件分岐命令である”、及び”解読した第２種命令が第２種条件付分岐命令であり、且つ第２種命令状態フラグ保持部２１６で保持されている状態フラグに基づいて、解読した第２種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする条件を指す。
【０１５９】
さらに、代替命令書換部２２４は、第２種分岐条件を判定した結果が真であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
さらに、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。
【０１６０】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１６１】
さらに、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
【０１６２】
また、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【０１６３】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１６４】
さらに、代替命令書換部２２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。そして、第２種命令変換部２２１を呼び出す。
【０１６５】
また、代替命令書換部２２４は、第２種分岐条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する。設定した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
さらに、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。
【０１６６】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１６７】
さらに、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
【０１６８】
また、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。
【０１６９】
さらに、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０１７０】
さらに、代替命令書換部２２４は、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。そして、第２種命令変換部２２１を呼び出す。
【０１７１】
（保持先アドレス対応表の例）
図１７は、保持先アドレス対応表の一例を示す図である。
同図にみられるように、保持先アドレス対応表のレコードは、フィールドＦ３０１、フィールドＦ３０２、フィールドＦ３０３、及びフィールドＦ３０４から構成される。そして、フィールドＦ３０１に第１種保持先アドレス、フィールドＦ３０２に第２種保持先アドレス、フィールドＦ３０３に書換フラグ、及びフィールドＦ３０４に分岐フラグが対応付けられていることを示している。
【０１７２】
（エミュレーション装置２００の動作）
以上のように構成されたエミュレーション装置２００について、その動作を説明する。
（実施の形態２におけるエミュレーション処理）
図１８〜３１は、実施の形態２におけるエミュレーション処理を示すフローチャート図である。
【０１７３】
なお、実施の形態２におけるエミュレーション処理は、実施の形態１におけるエミュレーション処理と比べて、以下の点が異なる。
図１８にみられるように、第２種命令変換部２２１は、ステップＳ１１６を実行した後に、第２種分岐命令識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、第１種命令列に、解読した第２種命令（第２種分岐命令）を変換する（ステップＳ２０１）。第１種命令書き込みアドレスから、変換後の第１種前置命令列（第１種分岐命令、及び第１種無条件分岐命令を除く第１種命令列）を書き込む（ステップＳ２０２）。書き込んだ第１種命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２０３）。ステップＳ１２１〜Ｓ１２３を実行する。そして、ステップＳ１２３を実行した後に、分岐先アドレス登録条件を判定した結果が真であるならば、ステップＳ１２４〜Ｓ１２７を実行する。
【０１７４】
図１９にみられるように、第２種命令変換部２２１は、ステップＳ１２７を実行した後に、更新した第２種命令取り込みアドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２１１）。そして、無条件分岐先アドレス登録条件を判定する（ステップＳ２１２）。
次に、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２１３）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２１４）。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ２１５）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２１６）。ステップＳ１２８を実行する。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
【０１７５】
また、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する（ステップＳ２１７）。更新した第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する（ステップＳ２１８）。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２１９）。
【０１７６】
図２０にみられるように、第２種命令変換部２２１は、ステップＳ１２３を実行した後に、分岐先アドレス登録条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２２１）。そして、逆条件分岐先アドレス登録条件を判定する（ステップＳ２２２）。
【０１７７】
次に、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２２３）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２２４）。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む（ステップＳ２２５）。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２２６）。
【０１７８】
次に、第２種命令変換部２２１は、更新した第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する（ステップＳ２２７）。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２２８）。計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ２２９）。
【０１７９】
また、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が偽であるならば、代替命令書込部２２２を呼び出す（ステップＳ２３１に遷移する）。
図２１にみられるように、代替命令書込部２２２は、第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込む（ステップＳ２３１）。書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２３２）。
【０１８０】
次に、代替命令書込部２２２は、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定する（ステップＳ２３３）。そして、ステップＳ１３４を実行する。
次に、代替命令書込部２２２は、ステップＳ１３４を実行した後に、”ＦＡＬＳＥ（０）”に、書換フラグを設定する（ステップＳ２３４）。”ＦＡＬＳＥ（０）”に、分岐フラグを設定する（ステップＳ２３５）。保持先アドレス対応表に、設定した第１種保持先アドレス、設定した第２種保持先アドレス、設定した書換フラグ、及び設定した分岐フラグを対応付けたレコードを登録する（ステップＳ２３６）。ステップＳ１３６を実行する。
【０１８１】
次に、代替命令書込部２２２は、ステップＳ１３６を実行した後に、第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する（ステップＳ２３７）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
図２２にみられるように、第１種命令実行部２２３は、ステップＳ１４１〜Ｓ１４６を実行した後に、代替命令識別条件を判定した結果が真であるならば、代替命令書換部２２４を呼び出す（ステップＳ１５１に遷移する）。偽であるならば、状態フラグ転送命令識別条件を判定する（ステップＳ２４１）。
【０１８２】
次に、第１種命令実行部２２３は、状態フラグ転送命令識別条件を判定した結果が偽であるならば、ステップＳ１４７を実行する。
また、第１種命令実行部２２３は、ステップＳ１４７を実行した後に、第１種分岐命令識別条件を判定した結果が偽であるならば、ステップＳ１４８を実行する。実行した第１種命令の結果を示す状態に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを更新する（ステップＳ２４２）。そして、ステップＳ１４１に遷移する。
【０１８３】
図２３にみられるように、第１種命令実行部２２３は、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ保持部２１６に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを転送する（ステップＳ２５１）。そして、ステップＳ１４１に遷移する。
また、第１種命令実行部２２３は、ステップＳ１４７を実行した後に、第１種分岐命令識別条件を判定した結果が真であるならば、第１種分岐条件を判定する（ステップＳ２５２）。第１種分岐条件を判定した結果が真であるならば、ステップＳ１４９〜Ｓ１５０を実行する。そして、ステップＳ１４１に遷移する。
【０１８４】
図２４にみられるように、代替命令書換部２２４は、保持先アドレス登録条件を判定した結果が真であるならば、ステップＳ１５４〜Ｓ１５８を実行した後に、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている書換フラグを取得する（ステップＳ２６１）。そして、書換フラグ識別条件を判定する（ステップＳ２６２）。
【０１８５】
次に、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、検索キーと一致する第１種保持先アドレスと対応付けられている分岐フラグを取得する（ステップＳ２６３）。そして、分岐フラグ識別条件を判定する（ステップＳ２６４）。
また、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であるならば、第２種分岐条件を判定する（ステップＳ２６５）。
【０１８６】
図２５にみられるように、代替命令書換部２２４は、分岐フラグ識別条件を判定した結果が真であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する（ステップＳ２７１ａ）。設定した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２７２ａ）。そして、分岐先アドレス登録条件を判定する（ステップＳ２７３ａ）。
【０１８７】
次に、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２７４ａ）。
次に、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７５ａ）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２７６ａ）。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ２７７ａ）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７８ａ）。
【０１８８】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２７９ａ）。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する（ステップＳ２８０ａ）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
【０１８９】
図２６にみられるように、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する（ステップＳ２８１ａ）。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２８２ａ）。
【０１９０】
次に、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８３ａ）。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２８４ａ）。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ２８５ａ）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８６ａ）。
【０１９１】
次に、代替命令書換部２２４は、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８７ａ）。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２８８ａ）。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する（ステップＳ２８９ａ）。そして、第２種命令変換部２２１を呼び出す（ステップＳ１１１に遷移する）。
【０１９２】
図２７にみられるように、代替命令書換部２２４は、分岐フラグ識別条件を判定した結果が偽であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する（ステップＳ２７１ｂ）。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２７２ｂ）。そして、分岐先アドレス登録条件を判定する（ステップＳ２７３ｂ）。
【０１９３】
次に、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２７４ｂ）。
次に、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７５ｂ）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２７６ｂ）。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ２７７ｂ）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７８ｂ）。
【０１９４】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２７９ｂ）。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する（ステップＳ２８０ｂ）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
【０１９５】
図２８にみられるように、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する（ステップＳ２８１ｂ）。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２８２ｂ）。
【０１９６】
次に、代替命令書換部２２４は、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８３ｂ）。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２８４ｂ）。更新した第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ２８５ｂ）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８６ｂ）。
【０１９７】
次に、代替命令書換部２２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ２８７ｂ）。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８８ｂ）。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２８９ｂ）。保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除する（ステップＳ２９０ｂ）。そして、第２種命令変換部２２１を呼び出す（ステップＳ１１１に遷移する）。
【０１９８】
図２９にみられるように、代替命令書換部２２４は、第２種分岐条件を判定した結果が真であるならば、解読した第２種命令（第２種分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する（ステップＳ２７１ｃ）。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２７２ｃ）。そして、分岐先アドレス登録条件を判定する（ステップＳ２７３ｃ）。
【０１９９】
次に、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２７４ｃ）。
次に、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７５ｃ）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２７６ｃ）。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む（ステップＳ２７７ｃ）。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７８ｃ）。
【０２００】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２７９ｃ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する（ステップＳ２８０ｃ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する（ステップＳ２８１ｃ）。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する（ステップＳ２８２ｃ）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
【０２０１】
図３０にみられるように、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する（ステップＳ２８３ｃ）。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２８４ｃ）。
【０２０２】
次に、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８５ｃ）。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２８６ｃ）。更新した第１種命令書き込みアドレスから、変換後の第１種分岐命令を書き込む（ステップＳ２８７ｃ）。書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８８ｃ）。
【０２０３】
次に、代替命令書換部２２４は、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ２８９ｃ）。設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２９０ｃ）。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２９１ｃ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する（ステップＳ２９２ｃ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する（ステップＳ２９３ｃ）。そして、第２種命令変換部２２１を呼び出す（ステップＳ１１１に遷移する）。
【０２０４】
図３１にみられるように、代替命令書換部２２４は、第２種分岐条件を判定した結果が偽であるならば、更新した第２種命令取り込みアドレスに、第２種分岐先アドレスを設定する（ステップＳ２７１ｄ）。設定した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ２７２ｄ）。そして、分岐先アドレス登録条件を判定する（ステップＳ２７３ｄ）。
【０２０５】
次に、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ２７４ｄ）。
次に、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７５ｄ）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２７６ｄ）。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む（ステップＳ２７７ｄ）。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２７８ｄ）。
【０２０６】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２７９ｄ）。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する（ステップＳ２８０ｄ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する（ステップＳ２８１ｄ）。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する（ステップＳ２８２ｄ）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
【０２０７】
図３２にみられるように、代替命令書換部２２４は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する（ステップＳ２８３ｄ）。分岐先アドレス対応表に、設定した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ２８４ｄ）。
【０２０８】
次に、代替命令書換部２２４は、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８５ｄ）。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する（ステップＳ２８６ｄ）。更新した第１種命令書き込みアドレスから、変換後の第１種逆条件分岐命令を書き込む（ステップＳ２８７ｄ）。書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８８ｄ）。
【０２０９】
次に、代替命令書換部２２４は、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新する（ステップＳ２８９ｄ）。設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新する（ステップＳ２９０ｄ）。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する（ステップＳ２９１ｄ）。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する（ステップＳ２９２ｄ）。そして、第２種命令変換部２２１を呼び出す（ステップＳ１１１に遷移する）。
【０２１０】
（実施の形態２における動作例）
ここで、エミュレーション装置２００の具体的な動作について説明する。
なお、実施の形態２におけるクリアランスサイズは１６バイト（４命令分）とする。
図３３〜４５は、実施の形態２におけるエミュレーション装置の動作例を示す模式図である。
【０２１１】
なお、図３３〜３６は、各場合における第２種命令変換部２２１の動作例を示している。図３７は、代替命令書込部２２２の動作例を示している。図３８〜４５は、各場合における代替命令書換部２２４の動作例を示している。
以下、ＳＢＩ＃１の分岐先アドレス、及び次のアドレスのいずれもが、分岐先アドレス対応表に登録されているとする。また、ＳＢＩ＃２の分岐先アドレス、及び次のアドレスのいずれもが、登録されていないとする。
【０２１２】
なお、ＳＢＩ＃１の分岐先アドレス（０ｘ０１００４５３０ｈ）と対応付けられている第１種分岐先アドレスを、”０ｘ０１００６９８０ｈ”とする。ＳＢＩ＃１の次のアドレス（０ｘ０１００４５４４ｈ）と対応付けられている第１種分岐先アドレスを、”０ｘ０１００６８０８ｈ”とする。
（第２種命令変換部２２１の動作例）
図３３〜３６にみられるように、第２種命令変換部２２１は、第２種命令取り込みアドレスから、第２種命令（ＳＩ＃１６まで）を取り込む。取り込んだ第２種命令のサイズ分増加したアドレス（０ｘ０１００４５４０ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０２１３】
次に、第２種命令変換部２２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。
次に、第２種命令変換部２２１は、第２種分岐命令識別条件を判定した結果が偽であることにより、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する。第１種命令書き込みアドレスから、変換後の第１種命令（列）を書き込む。書き込んだ第１種命令（列）のサイズ分増加したアドレス（０ｘ０１００６ａ６４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２１４】
続いて、第２種命令変換部２２１は、第２種命令取り込みアドレス（０ｘ０１００４５４０ｈ）から、第２種命令（ＳＢＩ＃１）を取り込む。取り込んだ第２種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００４５４４ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０２１５】
次に、第２種命令変換部２２１は、変換停止条件を判定した結果が偽であることにより、第２種分岐命令識別条件を判定する。
次に、第２種命令変換部２２１は、第２種分岐命令識別条件を判定した結果が真であることにより、変換ルールセットに基づいて、第１種命令列に、解読した第２種命令（ＳＢＩ＃１）を変換する。第１種命令書き込みアドレス（０ｘ０１００６ａ６４ｈ）から、変換後の第１種前置命令列（ＦＩ＃１０〜＃１２）を書き込む。書き込んだ第１種命令列のサイズ（１２バイト）分増加したアドレス（０ｘ０１００６ａ７０ｈ）に、第１種命令書き込みアドレスを更新する。解読した第２種命令（ＳＢＩ＃１）の分岐先アドレス（第２種分岐先アドレス）を計算する。　計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０２１６】
図３３〜３４にみられるように、第２種命令変換部２２１は、分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
第２種命令変換部２２１は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５３０ｈ）と対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６９８０ｈ）に分岐する第１種分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種分岐命令（ＦＢＩ＃１）を書き込む。書き込んだ第１種分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２１７】
次に、第２種命令変換部２２１は、更新した第２種命令取り込みアドレス（０ｘ０１００４５４４ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、無条件分岐先アドレス登録条件を判定する。
（第２種命令変換部２２１の動作例その１）
図３３にみられるように、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
【０２１８】
第２種命令変換部２２１は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５４４ｈ）と対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に分岐する第１種無条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令終端アドレスを更新する。そして、第１種命令実行部２２３を呼び出す。
【０２１９】
（第２種命令変換部２２１の動作例その２）
図３４にみられるように、第２種命令変換部２２１は、無条件分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
第２種命令変換部２２１は、更新した第２種命令取り込みアドレス（０ｘ０１００４５４４ｈ）に、第２種分岐先アドレスを設定する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス（０ｘ０１００４５４４ｈ）、及び設定した第１種無条件分岐先アドレス（０ｘ０１００６ａ７４ｈ）を対応付けたレコードを登録する。そして、次の第２種分岐命令（ＳＢＩ＃２）まで、継続して変換する。
【０２２０】
図３５〜３６にみられるように、第２種命令変換部２２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
第２種命令変換部２２１は、更新した第２種命令取り込みアドレス（０ｘ０１００４５４４ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、逆条件分岐先アドレス登録条件を判定する。
【０２２１】
（第２種命令変換部２２１の動作例その３）
図３５にみられるように、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
第２種命令変換部２２１は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５４４ｈ）と対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種逆条件分岐命令（ＦＩＩ＃１）を書き込む。書き込んだ第１種逆条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ａ７４ｈ）を対応付けたレコードを登録する。計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）に、第２種命令取り込みアドレスを更新する。そして、次の第２種分岐命令（ＳＢＩ＃１）まで、継続して変換する。
【０２２２】
（第２種命令変換部２２１の動作例その４）
図３６にみられるように、第２種命令変換部２２１は、逆条件分岐先アドレス登録条件を判定した結果が偽であるならば、代替命令書込部２２２を呼び出す。
（代替命令書込部２２２の動作例）
図３７にみられるように、代替命令書込部２２２は、第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、状態フラグ転送命令（ＳＴＩ）、及び代替命令（ＦＳＩ）を書き込む。書き込んだ状態フラグ転送命令、及び代替命令のサイズ（８バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。
【０２２３】
次に、代替命令書込部２２２は、更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７８ｈ）から代替命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種保持先アドレスを設定する。
次に、代替命令書込部２２２は、第２種命令取り込みアドレス（０ｘ０１００４５４４ｈ）から第２種分岐命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００４５４０ｈ）に、第２種保持先アドレスを設定する。”ＦＡＬＳＥ（０）”に、書換フラグを設定する。”ＦＡＬＳＥ（０）”に、分岐フラグを設定する。保持先アドレス対応表に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）、設定した第２種保持先アドレス（０ｘ０１００４５４０ｈ）、設定した書換フラグ（ＦＡＬＳＥ）、及び設定した分岐フラグ（ＦＡＬＳＥ）を対応付けたレコードを登録する。
【０２２４】
次に、代替命令書込部２２２は、更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令終端アドレスを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
（代替命令書換部２２４の動作例その１）
図３８にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
【０２２５】
代替命令書換部２２４は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５４４ｈ）と対応付けられている第１種分岐先アドレスを取得する。
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に分岐する第１種無条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。
【０２２６】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）、及び取得した第２種保持先アドレス（０ｘ０１００４５４０ｈ）が対応付けられているレコードを削除する。そして、第１種命令実行部２２３を呼び出す。
【０２２７】
（代替命令書換部２２４の動作例その２）
図３９にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
【０２２８】
代替命令書換部２２４は、第１種命令終端アドレス（０ｘ０１００６ａ７８ｈ）からクリアランスサイズ（１６バイト）を加算したアドレス（０ｘ０１００６ａ８８ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス（０ｘ０１００４５４４ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）を対応付けたレコードを登録する。
【０２２９】
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に分岐する第１種無条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。
【０２３０】
次に、代替命令書換部２２４は、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）、及び取得した第２種保持先アドレス（０ｘ０１００４５４０ｈ）が対応付けられているレコードを削除する。そして、第２種命令変換部２２１を呼び出す。
【０２３１】
（代替命令書換部２２４の動作例その３）
図４０にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
【０２３２】
代替命令書換部２２４は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５３０ｈ）と対応付けられている第１種分岐先アドレスを取得する。
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６９８０ｈ）に分岐する第１種無条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。
【０２３３】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレス（０ｘ０１００６９８０ｈ）に、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）、及び取得した第２種保持先アドレス（０ｘ０１００４５４０ｈ）が対応付けられているレコードを削除する。そして、第１種命令実行部２２３を呼び出す。
【０２３４】
（代替命令書換部２２４の動作例その４）
図４１にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
【０２３５】
代替命令書換部２２４は、第１種命令終端アドレス（０ｘ０１００６ａ７８ｈ）からクリアランスサイズ（１６バイト）を加算したアドレス（０ｘ０１００６ａ８８ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）を対応付けたレコードを登録する。
【０２３６】
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に分岐する第１種無条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７４ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７８ｈ）に、第１種命令書き込みアドレスを更新する。
【０２３７】
次に、代替命令書換部２２４は、計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）に、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令取り込みアドレスを更新する。保持先アドレス対応表から、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）、及び取得した第２種保持先アドレス（０ｘ０１００４５４０ｈ）が対応付けられているレコードを削除する。そして、第２種命令変換部２２１を呼び出す。
【０２３８】
（代替命令書換部２２４の動作例その５）
図４２にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
【０２３９】
代替命令書換部２２４は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５３０ｈ）と対応付けられている第１種分岐先アドレスを取得する。
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）から状態フラグ転送命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６ａ７０ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６９８０ｈ）に分岐する第１種分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種分岐命令（ＦＢＩ＃１）を書き込む。書き込んだ第１種分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２４０】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレス（０ｘ０１００６９８０ｈ）に、第１種命令取り込みアドレスを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
【０２４１】
（代替命令書換部２２４の動作例その６）
図４３にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
【０２４２】
代替命令書換部２２４は、第１種命令終端アドレス（０ｘ０１００６ａ７８ｈ）からクリアランスサイズ（１６バイト）を加算したアドレス（０ｘ０１００６ａ８８ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）を対応付けたレコードを登録する。
【０２４３】
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）から状態フラグ転送命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６ａ７０ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に分岐する第１種分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種分岐命令（ＦＢＩ＃１）を書き込む。書き込んだ第１種分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２４４】
次に、代替命令書換部２２４は、計算した第２種分岐先アドレス（０ｘ０１００４５３０ｈ）に、第２種命令取り込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令取り込みアドレスを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。そして、第２種命令変換部２２１を呼び出す。
【０２４５】
（代替命令書換部２２４の動作例その７）
図４４にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
【０２４６】
代替命令書換部２２４は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４５４４ｈ）と対応付けられている第１種分岐先アドレスを取得する。
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）から状態フラグ転送命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６ａ７０ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に分岐する第１種逆条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種逆条件分岐命令（ＦＩＩ＃１）を書き込む。書き込んだ第１種逆条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２４７】
次に、代替命令書換部２２４は、取得した第１種分岐先アドレス（０ｘ０１００６８０８ｈ）に、第１種命令取り込みアドレスを更新する。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。そして、第１種命令実行部２２３を呼び出す。
【０２４８】
（代替命令書換部２２４の動作例その８）
図４５にみられるように、代替命令書換部２２４は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
【０２４９】
代替命令書換部２２４は、第１種命令終端アドレス（０ｘ０１００６ａ７８ｈ）からクリアランスサイズ（１６バイト）を加算したアドレス（０ｘ０１００６ａ８８ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、設定した第２種分岐先アドレス（０ｘ０１００４５４４ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）を対応付けたレコードを登録する。
【０２５０】
次に、代替命令書換部２２４は、設定した第１種保持先アドレス（０ｘ０１００６ａ７４ｈ）から状態フラグ転送命令のサイズ（４バイト）を減算したアドレス（０ｘ０１００６ａ７０ｈ）に、第１種命令書き込みアドレスを更新する。変換ルールセットに基づいて、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に分岐する第１種逆条件分岐命令に、解読した第２種分岐命令（ＳＢＩ＃１）を変換する。更新した第１種命令書き込みアドレス（０ｘ０１００６ａ７０ｈ）から、変換後の第１種逆条件分岐命令（ＦＩＩ＃１）を書き込む。書き込んだ第１種逆条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ａ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２５１】
次に、代替命令書換部２２４は、設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令書き込みアドレスを更新する。設定した第１種分岐先アドレス（０ｘ０１００６ａ８８ｈ）に、第１種命令取り込みアドレスを更新する。”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新する。”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレス（０ｘ０１００６ａ７０ｈ）と対応付けられて保持先アドレス対応表に登録されている書換フラグを更新する。そして、第２種命令変換部２２１を呼び出す。
【０２５２】
（実施の形態２におけるまとめ）
以上のように、実施の形態２におけるエミュレーション装置２００は、代替命令書込部２２２から第１種命令実行部２２３に、及び代替命令書換部２２４から第１種命令実行部２２３に遷移する際には、第１種命令状態フラグ保持部２１５に、第２種命令状態フラグ保持部２１６で保持されている状態フラグを転送する。
【０２５３】
また、第１種命令実行部２２３から代替命令書換部２２４に遷移する際には、第２種命令状態フラグ保持部２１６に、第１種命令状態フラグ保持部２１５で保持されている状態フラグを転送する。
そして、代替命令書換部２２４において、第２種命令状態フラグ保持部２１６で保持されている状態フラグに基づいて、変換前の第２種分岐命令の分岐先を決定する。
【０２５４】
また、第２種命令変換部２２１において、解読した第２種分岐命令を変換する際に、解読した第２種分岐命令の分岐先アドレス、及び解読した第２種分岐命令の次のアドレスが分岐先アドレス対応表に登録されているか否かを判定する。そして、判定結果に応じて、以下に示す（変換処理−１）〜（変換処理−４）の４つの場合に分けて、解読した第２種分岐命令を変換する。
【０２５５】
（変換処理−１）解読した第２種分岐命令の分岐先アドレス、及び次のアドレスのいずれもが、分岐先アドレス対応表に登録されている場合には、変換ルールセットに基づいて、第１種命令列、第１種分岐命令、及び第１種無条件分岐命令から構成される第１種命令列に、解読した第２種分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２５６】
なお、変換後の第１種分岐命令の分岐先アドレスは、分岐先アドレスと対応付けられて分岐先アドレス対応表に登録されている第１種分岐先アドレスである。なお、変換後の第１種無条件分岐命令の分岐先アドレスは、次のアドレスと対応付けられて分岐先アドレス対応表に登録されている第１種分岐先アドレスである。
【０２５７】
（変換処理−２）解読し第２種分岐命令の分岐先アドレスのみが、分岐先アドレス対応表に登録されている場合には、変換ルールセットに基づいて、第１種命令列、及び第１種分岐命令から構成される第１種命令列に、解読した第２種分岐命令を変換する。そして、継続して、次のアドレスに保持されている第２種命令から次の第２種分岐命令までを変換する。
【０２５８】
なお、変換後の第１種分岐命令の分岐先アドレスは、分岐先アドレスと対応付けられて分岐先アドレス対応表に登録されている第１種分岐先アドレスである。（変換処理−３）解読した第２種分岐命令の次のアドレスのみが、分岐先アドレス対応表に登録されている場合には、変換ルールセットに基づいて、第１種命令列、及び第１種逆条件分岐命令から構成される第１種命令列に、解読した第２種分岐命令を変換する。そして、継続して、分岐先アドレスに保持されている第２種命令から次の第２種分岐命令までを変換する。
【０２５９】
なお、変換後の第１種逆条件分岐命令の分岐先アドレスは、次のアドレスと対応付けられて分岐先アドレス対応表に登録されている第１種分岐先アドレスである。
（変換処理−４）解読した第２種分岐命令の分岐先アドレス、及び解読した第２種分岐命令の次のアドレスのいずれもが、分岐先アドレス対応表に登録されていない場合には、第１種分岐命令（又は第１種逆条件分岐命令）、及び第１種無条件分岐命令を含まない第１種命令列に、解読した第２種分岐命令を変換する。代替命令書込部２２２を呼び出す。
【０２６０】
また、代替命令書換部２２４において、代替命令（又は状態フラグ転送命令）を書き換える際に、書換フラグ、分岐フラグ（又は第２種分岐条件）、及び解読した第２種分岐命令の分岐先アドレス（又は次のアドレス）が、分岐先アドレス対応表に登録されているか否かを判定する。そして、判定結果に応じて、以下に示す８つの場合いに分けて、解読した第２種分岐命令を変換する。
【０２６１】
（書換処理−１）書換フラグが”ＴＲＵＥ（０以外）”であり、且つ分岐フラグが”ＴＲＵＥ（０以外）”であり、且つ解読した第２種分岐命令の次のアドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、次のアドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２６２】
（書換処理−２）書換フラグが”ＴＲＵＥ（０以外）”であり、且つ分岐フラグが”ＴＲＵＥ（０以外）”であり、且つ解読した第２種分岐命令の次のアドレスが、分岐先アドレス対応表に登録されていない場合には、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。そして、第２種命令変換部２２１を呼び出す。
【０２６３】
（書換処理−３）書換フラグが”ＴＲＵＥ（０以外）”であり、且つ分岐フラグが”ＦＡＬＳＥ（０）”であり、且つ解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２６４】
（書換処理−４）書換フラグが”ＴＲＵＥ（０以外）”であり、且つ分岐フラグが”ＦＡＬＳＥ（０）”であり、且つ解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されていない場合には、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種分岐命令を変換する。そして、第２種命令変換部２２１を呼び出す。
【０２６５】
（書換処理−５）書換フラグが”ＦＡＬＳＥ（０）”であり、且つ第２種分岐条件を判定した結果が真であり、且つ解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２６６】
（書換処理−６）書換フラグが”ＦＡＬＳＥ（０）”であり、且つ第２種分岐条件を判定した結果が真であり、且つ解読した第２種分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されていない場合には、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、解読した第２種分岐命令を変換する。そして、第２種命令変換部２２１を呼び出す。
【０２６７】
（書換処理−７）書換フラグが”ＦＡＬＳＥ（０）”であり、且つ第２種分岐条件を判定した結果が偽であり、且つ解読した第２種分岐命令の次のアドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、次のアドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２６８】
（書換処理−８）書換フラグが”ＦＡＬＳＥ（０）”であり、且つ第２種分岐条件を判定した結果が偽であり、且つ解読した第２種分岐命令の次のアドレスが、分岐先アドレス対応表に登録されていない場合には、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定する。変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、解読した第２種分岐命令を変換する。そして、第２種命令変換部２２１を呼び出す。
【０２６９】
（実施の形態２におけるその他）
なお、エミュレーション装置２００に対して、以下の（変更−１）〜（変更−２）を施すとしてもよい。
（変更−１）代替命令書換部２２４において、状態フラグを判定した結果が常に真であると仮定し、（書換処理−３）、（書換処理−４）、（書換処理−７）、及び（書換処理−８）を省略する。さらに、（書換処理−１）、及び（書換処理−２）において、設定した第１種保持先アドレスに、第１種命令取り込みアドレスを更新する。（書換処理−５）、及び（書換処理−６）において設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新する。また、（書換処理−１）において、設定した第１種保持先アドレスの代わりに、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新するとしてもよい。（書換処理−２）において、設定した第１種保持先アドレスの代わりに、設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新するとしてもよい。或いは、状態フラグを判定した結果が常に偽であると仮定し、（書換処理−１）、（書換処理−２）、（書換処理−５）、及び（書換処理−６）を省略するとしてもよい。その場合には、（書換処理−３）、及び（書換処理−４）において、設定した第１種保持先アドレスに、第１種命令取り込みアドレスを更新する。（書換処理−７）、及び（書換処理−８）において設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新する。同様に、（書換処理−３）において、設定した第１種保持先アドレスの代わりに、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新するとしてもよい。（書換処理−４）において、設定した第１種保持先アドレスの代わりに、設定した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新するとしてもよい。
【０２７０】
（変更−２）保持先アドレス対応表保持部２０５において、保持している保持先アドレス対応表のレコードを、分岐フラグが登録されるフィールドを省略したレコードとする。
また、エミュレーション装置２００に対して、以下の（変更−３）〜（変更−４）を施すとしてもよい。
【０２７１】
（変更−３）第２種命令変換部２２１において、（変換処理−４）の場合に、変換後の第１種前置命令列、及び状態フラグ転送命令から構成される第１種命令列に、解読した第２種分岐命令を変換する。
（変更−４）代替命令書込部２２２において、状態フラグ転送命令、及び代替命令を書き込む代わりに、代替命令のみを書き込む。そして、代替命令が書き込まれた第１種命令列アドレスに、第１種保持先アドレスを設定する。
【０２７２】
また、エミュレーション装置２００に対して、以下の（変更−５）を施すとしてもよい。
（変更−５）代替命令書換部２２４において、取得した第１種分岐先アドレス、又は設定した第１種分岐先アドレスの代わりに、（書換処理−１）〜（書換処理−４）の場合には、設定した第１種保持先アドレスに、（書換処理−５）〜（書換処理−８）の場合には、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新するとしてもよい。
（実施の形態３）
以下、本発明の実施の形態３について、図面を参照しながら説明する。なお、実施の形態２と同一の構成要素、動作については同一の符号を付して、その説明を省略する。
【０２７３】
なお、実施の形態３においては、第２種条件付分岐命令から第１種条件付分岐命令を含む第１種命令列に変換する場合に加えて、第２種無条件分岐命令から第１種無条件分岐命令に変換する場合について説明する。
（実施の形態３におけるエミュレーション装置の構成）
図４６は、実施の形態３におけるエミュレーション装置の構成を示すブロック図である。
【０２７４】
同図にみられるように、エミュレーション装置３００は、エミュレーション装置２００と比べて、第２種命令変換部２２１の代わりに、第２種命令変換部３２１を備える点が異なる。
第２種命令変換部３２１は、変換停止条件を判定した結果が偽であるならば、第２種無条件分岐命令識別条件を判定する。
【０２７５】
ここで、第２種無条件分岐命令識別条件とは、解読した第２種命令が第２種無条件分岐命令であるならば真とし、否ならば偽とする条件を指す。
さらに、第２種命令変換部３２１は、第２種無条件分岐命令識別条件を判定した結果が真であるならば、解読した第２種命令（第２種無条件分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０２７６】
さらに、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換する。第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する。
【０２７７】
さらに、第２種命令変換部３２１は、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する。そして、第１種命令実行部２２３を呼び出す。
また、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する。計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する。
【０２７８】
また、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、第２種条件付分岐命令識別条件を判定する。
ここで、第２種条件付分岐命令識別条件とは、解読した第２種命令が第２種条件付分岐命令であるならば真とし、否ならば偽とする条件を指す。
（エミュレーション装置３００の動作）
以上のように構成されたエミュレーション装置３００について、その動作を説明する。
【０２７９】
（実施の形態３におけるエミュレーション処理）
図４７〜４９は、実施の形態３におけるエミュレーション処理を示すフローチャート図である。
なお、実施の形態３におけるエミュレーション処理は、実施の形態２におけるエミュレーション処理と比べて、以下の点が異なる。
【０２８０】
図４７にみられるように、第２種命令変換部３２１は、変換停止条件を判定した結果が偽であるならば、第２種無条件分岐命令識別条件を判定する（ステップＳ３０１）。
次に、第２種命令変換部３２１は、第２種無条件分岐命令識別条件を判定した結果が真であるならば、ステップＳ３１１に遷移する。偽であるならば、第２種条件付分岐命令識別条件を判定する（ステップＳ３０２）。
【０２８１】
次に、第２種命令変換部３２１は、第２種条件付分岐命令識別条件を判定した結果が偽であるならば、ステップＳ１１７〜Ｓ１１９を実行する。そして、ステップＳ１１１に遷移する。真であるならば、ステップＳ２０１に遷移する。
図４８にみられるように、第２種命令変換部３２１は、第２種無条件分岐命令識別条件を判定した結果が真であるならば、解読した第２種命令（第２種無条件分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する（ステップＳ３１１）。計算した第２種分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索する（ステップＳ３１２）。そして、分岐先アドレス登録条件を判定する（ステップＳ３１３）。
【０２８２】
次に、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する（ステップＳ３１４）。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換する（ステップＳ３１５）。第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込む（ステップＳ３１６）。書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新する（ステップＳ３１７）。
【０２８３】
次に、代替命令書込部２２２は、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新する（ステップＳ３１８）。そして、第１種命令実行部２２３を呼び出す（ステップＳ１４１に遷移する）。
図４９にみられるように、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定する（ステップＳ３２１）。分岐先アドレス対応表に、計算した第２種分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録する（ステップＳ３２２）。計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新する（ステップＳ３２３）。そして、ステップＳ１１１に遷移する。
【０２８４】
（実施の形態３における動作例）
ここで、エミュレーション装置３００の具体的な動作について説明する。
図５０〜５１は、実施の形態３におけるエミュレーション装置の動作例を示す模式図である。
なお、図５０〜５１は、各場合における第２種命令変換部３２１の動作例を示している。
【０２８５】
（第２種命令変換部３２１の動作例）
図５０〜５１にみられるように、第２種命令変換部３２１は、第２種命令取り込みアドレスから、第２種命令（ＳＩ＃８まで）を取り込む。取り込んだ第２種命令のサイズ分増加したアドレス（０ｘ０１００４６２０ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０２８６】
次に、第２種命令変換部３２１は、変換停止条件を判定した結果が偽であることにより、第２種無条件分岐命令識別条件を判定する。さらに、第２種無条件分岐命令識別条件を判定した結果が偽であることにより、第２種条件付分岐命令識別条件を判定する。さらに、第２種条件付分岐命令識別条件を判定した結果が偽であることにより、変換ルールセットに基づいて、第１種命令（列）に、解読した第２種命令を変換する。第１種命令書き込みアドレスから、変換後の第１種命令（列）を書き込む。書き込んだ第１種命令（列）のサイズ分増加したアドレス（０ｘ０１００６ｃ７０ｈ）に、第１種命令書き込みアドレスを更新する。
【０２８７】
続いて、第２種命令変換部３２１は、第２種命令取り込みアドレス（０ｘ０１００４６２０ｈ）から、第２種命令（ＳＵＩ＃１）を取り込む。取り込んだ第２種命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００４６２４ｈ）に、第２種命令取り込みアドレスを更新する。取り込んだ第２種命令を解読する。解読した第２種命令に応じて、オペランドを取り込む。そして、変換停止条件を判定する。
【０２８８】
次に、第２種命令変換部３２１は、変換停止条件を判定した結果が偽であることにより、第２種無条件分岐命令識別条件を判定する。さらに、第２種命令変換部３２１は、第２種無条件分岐命令識別条件を判定した結果が真であることにより、解読した第２種命令（第２種無条件分岐命令）の分岐先アドレス（第２種分岐先アドレス）を計算する。計算した第２種分岐先アドレス（０ｘ０１００４６４ｈ）を検索キーとして、分岐先アドレス対応表を検索する。そして、分岐先アドレス登録条件を判定する。
【０２８９】
（第２種命令変換部３２１の動作例その１）
図５０にみられるように、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が真であるならば、以下の処理を実行する。
なお、第２種分岐命令（ＳＵＩ＃１）から変換される第１種無条件付分岐命令（ＦＣＩ＃１）の分岐先アドレスは、分岐先アドレス対応表に登録されていないとする。
【０２９０】
第２種命令変換部３２１は、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレス（０ｘ０１００４６４４ｈ）と対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレス（０ｘ０１００６ａｅｃｈ）に分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令（ＳＵＩ＃１）を変換する。第１種命令書き込みアドレス（０ｘ０１００６ｃ７０ｈ）から、変換後の第１種無条件分岐命令（ＦＵＩ＃１）を書き込む。書き込んだ第１種無条件分岐命令のサイズ（４バイト）分増加したアドレス（０ｘ０１００６ｃ７４ｈ）に、第１種命令書き込みアドレスを更新する。
【０２９１】
次に、第２種命令変換部３２１は、更新した第１種命令書き込みアドレス（０ｘ０１００６ｃ７４ｈ）に、第１種命令終端アドレスを更新する。そして、第１種命令実行部２２３を呼び出す。
（第２種命令変換部３２１の動作例その２）
図５１にみられるように、第２種命令変換部３２１は、分岐先アドレス登録条件を判定した結果が偽であるならば、以下の処理を実行する。
【０２９２】
なお、第２種分岐命令（ＳＣＩ＃２）から変換される第１種条件付分岐命令（ＦＣＩ＃２）、及び第１種無条件分岐命令（ＦＵＩ＃２）の各分岐先アドレスは、既に、分岐先アドレス対応表に登録されているとする。
第２種命令変換部３２１は、第１種命令書き込みアドレス（０ｘ０１００６ｃ７０ｈ）に、第１種分岐先アドレスを設定する。分岐先アドレス対応表に、計算した第２種分岐先アドレス（０ｘ０１００４６４４ｈ）、及び設定した第１種分岐先アドレス（０ｘ０１００６ｃ７０ｈ）を対応付けたレコードを登録する。計算した第２種分岐先アドレス（０ｘ０１００４６４４ｈ）に、第２種命令取り込みアドレスを更新する。そして、次の第２種分岐命令（ＳＣＩ＃２）まで、継続して変換する。
【０２９３】
（実施の形態３のまとめ）
以上の様に、実施の形態３におけるエミュレーション装置３００は、第２種無条件分岐命令、及び第２種条件付分岐命令を個別に扱う。
そして、第２種命令変換部３２１において、解読した第２種無条件分岐命令の分岐先アドレスが分岐先アドレス対応表に登録されているいるか否かを判定する。そして、判定結果に応じて、以下に示す（変換処理−１）〜（変換処理−２）の２つの場合に分けて、解読した第２種無条件分岐命令を変換する。
【０２９４】
（変換処理−１）解読した第２種無条件分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されている場合には、分岐先アドレス対応表から、分岐先アドレスと対応付けられている第１種分岐先アドレスを取得する。変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換する。そして、第１種命令実行部２２３を呼び出す。
【０２９５】
（変換処理−２）解読した第２種無条件分岐命令の分岐先アドレスが、分岐先アドレス対応表に登録されていない場合には、解読した第２種無条件分岐命令を変換しない。そして、分岐先アドレスに保持されている第２種命令から、次の第２種分岐命令までを、継続して変換する。
これにより、第２種条件付分岐命令を処理する場合のみ、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録する処理を実行するとしてもよい。
（その他）
なお、エミュレーションプログラムを、光学記録媒体（例えば、ＣＤ−ＲＯＭなど）、磁気記録媒体（例えば、ハードディスクなど）、光磁気記録媒体（例えば、ＭＯなど）、半導体メモリ（例えば、ＲＯＭなど）などのコンピュータ読み取り可能な記録媒体に記録しておき、他のコンピュータにおいて実行するとしてもよい。また、ネットワークにより接続されているコンピュータ等の一般のハードウェアシステム上に設けられたハードディスク等のコンピュータ読み取り可能な記録媒体に記録しておき、ネットワーク等の伝送路を経由して読み取った他のコンピュータにおいて実行するとしてもよい。
【０２９６】
なお、エミュレーション装置は、フルカスタムＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｉｏｎ）として形成されるとしてもよいし、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）のようなセミカスタムＬＳＩとして形成されるとしてもよい。また、ＶＨＤＬ（Ｖｅｒｙ　ｈｉｇｈ　ｓｐｅｅｄ　ｉｎｔｅｇｒａｔｅｄ　ｃｉｒｃｕｉｔ　Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）／Ｖｅｒｉｌｏｇ−ＨＤＬ／ＳｙｓｔｅｍＣなどのハードウェア記述言語（Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）で記述されたプログラム（以下、ＨＤＬプログラムと呼称する）から論理合成し、配置配線した回路情報、又はＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ　Ｐｒｏｐｅｒｔｙ）コアにより、ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）／ＣＰＬＤ（Ｃｏｍｐｌｅｘ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｌｏｇｉｃ　Ｄｅｖｉｃｅ）などのプログラマブルロジックデバイスに形成されるとしてもよい。さらに、マイクロプロセッサを内蔵したプログラマブルロジックデバイスに形成されるとしてもよい。なお、その際に、第１種命令実行部は、マイクロプロセッサを指すとしてもよい。
【０２９７】
また、ＨＤＬプログラム、回路情報、又はＩＰコアを、光学記録媒体（例えば、ＣＤ−ＲＯＭなど）、磁気記録媒体（例えば、ハードディスクなど）、光磁気記録媒体（例えば、ＭＯなど）、半導体メモリ（例えば、ＲＯＭなど）などのコンピュータ読み取り可能な記録媒体に記録しておき、他のコンピュータにおいて、ダウンロードケーブルを介して、プログラマブルロジックデバイスにダウンロードするとしてもよい。また、ネットワークにより接続されているコンピュータ等の一般のハードウェア上に設けられたハードディスク等のコンピュータ読み取り可能な記録媒体にＨＤＬプログラム、回路情報、又はＩＰコアを記録しておき、ネットワーク等の伝送路を経由して読み取った他のコンピュータにおいて、ダウンロードケーブルを介して、プログラマブルデバイスにダウンロードするとしてもよい。
【０２９８】
また、ＨＤＬプログラムから論理合成し、配置配線した回路情報、又はＩＰコアをシリアルＲＯＭに記録しておき、ＦＰＧＡに直接、ダウンロードするとしてもよい。
【０２９９】
【発明の効果】
（解決手段−１）
本発明に係わるエミュレーション装置は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるエミュレーション装置であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持手段と、前記第２種命令列保持手段で保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換手段と、前記第２種命令変換手段で変換された後の命令列を保持する第１種命令列保持手段と、前記第１種命令列保持手段で保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換手段で変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行手段とを備えるとする。
【０３００】
これによって、本発明に係わるエミュレーション装置は、後述の（効果−１）〜（効果−３）に示す効果がある。
（効果−１）一定の単位ごとに命令を変換して実行する場合に比べて、第２種命令を変換する変換過程において、一度に連続して変換する命令数が減少する。また、第２種命令から変換された第１種命令を実行する実行過程において、一度に連続して実行する命令数も減少する。これに伴い、変換過程から実行過程、又は実行過程から変換過程に遷移するまでの時間が短くなる。結果、変換過程から、再度、変換過程に遷移するまでの間に要するメモリサイズを小さくすることが可能という効果がある。
【０３０１】
（効果−２）別途、実行過程から変換過程に遷移する遷移命令を付加しなくともよい。結果、生成される遷移命令の数を削減することが可能という効果がある。
（効果−３）逐次に命令を変換して実行する場合に比べて、変換過程から実行過程に遷移する回数が減少する。結果、遷移に費やす総時間が減少するという効果がある。
【０３０２】
（解決手段−２）
加えて、（解決手段−１）において、前記エミュレーション装置は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持手段で保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持手段と、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持手段で保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持手段とを備え、前記第２種命令変換手段は、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行手段は、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【０３０３】
これによって、さらに、後述の（効果−４）に示す効果がある。
（効果−４）容易に、変換過程において変換される第２種命令、及び実行過程において実行される第１種命令を特定することが可能という効果がある。結果、遷移に費やす時間を減少することが可能という効果がある。
（解決手段−３）
加えて、（解決手段−２）において、前記エミュレーション装置は、さらに、変換された後の第１種命令が前記第１種命令列保持手段で保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持手段と、前記第１種命令列保持手段で保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持手段と、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持手段と、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持手段とを備え、前記第２種命令変換手段は、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３０４】
これによって、さらに、後述の（効果−５）〜（効果−７）に示す効果がある。
（効果−５）アドレステーブルを辿らなくとも、直接、分岐先アドレス対応表から分岐先を特定することが可能という効果がある。結果、アドレステーブルの代わりに分岐先アドレス対応表とすることにより、分岐先を特定するテーブルに費やすメモリサイズを小さくすることが可能という効果がある。
【０３０５】
（効果−６）変換過程において、命令を変換するたびに、変換前の命令が保持されているアドレス、及び変換後の命令が保持されるアドレスを対応付けてアドレステーブルに登録する登録処理を省略することが可能となる。結果、登録処理を省略することにより、変換過程における処理負荷を軽減することが可能という効果がある。
【０３０６】
（効果−７）容易に、空き領域を特定することが可能という効果がある。結果、不用意に書き換えられることを抑制することが可能という効果がある。
（解決手段−４）
加えて、（解決手段−３）において、前記エミュレーション装置は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持手段で保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持手段で保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持手段と、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行手段を呼び出す代替命令書込手段とを備え、前記第２種命令変換手段は、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込手段を呼び出し、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【０３０７】
これによって、さらに、後述の（効果−８）に示す効果がある。
（効果−８）遷移命令が付加される契機となった分岐命令と、遷移命令とを関連付けることにより、実行過程において、遷移命令までを連続して実行した後に、変換過程に遷移しても、変換過程において、変換を再開する命令を特定することが可能という効果がある。
【０３０８】
（解決手段−５）
加えて、（解決手段−４）において、前記エミュレーション装置は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出す代替命令書換手段を備え、前記代替命令書込手段は、前記代替命令書換手段を呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換手段を呼び出すとしてもよい。
【０３０９】
これによって、さらに、後述の（効果−９）に示す効果がある。
（効果−９）空き領域に設定した分岐先のアドレスを分岐先アドレス対応表に登録しておくことにより、再変換する際に、分岐先からの命令を変換する処理を省略することが可能という効果がある。結果、再変換に費やす時間を減少することが可能という効果がある。
【０３１０】
（解決手段−６）
加えて、（解決手段−５）において、前記代替命令書換手段は、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３１１】
これによって、さらに、後述の（効果−１０）に示す効果がある。
（効果−１０）分岐先からの命令を変換する処理を省略することが可能という効果がある。結果、変換に費やす時間が減少することが可能という効果がある。
（解決手段−７）
本発明に係わるエミュレーション方法は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させる装置を制御するエミュレーション方法であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持ステップと、前記第２種命令列保持ステップで保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、前記第２種命令変換ステップで変換された後の命令列を保持する第１種命令列保持ステップと、前記第１種命令列保持ステップで保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップとを含むとする。
【０３１２】
これによって、本発明に係わるエミュレーション方法により制御された装置は、前述の（効果−１）〜（効果−３）と同等の効果がある。
（解決手段−８）
加えて、（解決手段−７）において、前記エミュレーション方法は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持ステップで保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持ステップと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持ステップで保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持ステップとを含み、前記第２種命令変換ステップは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ステップは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【０３１３】
これによって、さらに、前述の（効果−４）と同等の効果がある。
（解決手段−９）
加えて、（解決手段−８）において、前記エミュレーション方法は、さらに、変換された後の第１種命令が前記第１種命令列保持ステップで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ステップと、前記第１種命令列保持ステップで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ステップとを含み、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３１４】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−１０）
加えて、（解決手段−９）において、前記エミュレーション方法は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ステップで保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持ステップで保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ステップと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとを含み、前記第２種命令変換ステップは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【０３１５】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−１１）
加えて、（解決手段−１０）において、前記エミュレーション方法は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出す代替命令書換ステップを含み、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【０３１６】
これによって、さらに、前述の（効果−９）と同等の効果がある。
（解決手段−１２）
加えて、（解決手段−１１）において、前記代替命令書換ステップは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３１７】
これによって、さらに、前述の（効果−１０）と同等の効果がある。
（解決手段−１３）
本発明に係わるエミュレーションプログラムは、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるコンピュータを制御するエミュレーションプログラムであって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列が保持される記憶領域を割り当てる第２種命令列割当ステップと、前記第２種命令列割当ステップで割り当てられた記憶領域を第２種命令列記憶領域とし、前記第２種命令列記憶領域に保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ステップと、前記第２種命令変換ステップで変換された後の命令列が保持される記憶領域を割り当てる第１種命令列割当ステップと、前記第１種命令列割当ステップで割り当てられた記憶領域を第１種命令列記憶領域とし、前記第１種命令列記憶領域に保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ステップで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ステップとをコンピュータに実行させるとする。
【０３１８】
これによって、本発明に係わるエミュレーションプログラムが実行されたコンピュータは、前述の（効果−１）〜（効果−３）と同等の効果がある。
（解決手段−１４）
加えて、（解決手段−１３）において、前記エミュレーションプログラムは、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列記憶領域に保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスが保持される記憶領域を割り当てる第２種命令取り込みアドレス割当ステップと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列記憶領域に保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスが保持される記憶領域を割り当てる第１種命令取り込みアドレス割当ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ステップは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【０３１９】
これによって、さらに、前述の（効果−４）と同等の効果がある。
（解決手段−１５）
加えて、（解決手段−１４）において、前記エミュレーションプログラムは、さらに、変換された後の第１種命令が前記第１種命令列記憶領域に保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスが保持される記憶領域を割り当てる第１種命令書き込みアドレス割当ステップと、前記第１種命令列記憶領域に保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスが保持される記憶領域を割り当てる第１種命令終端アドレス割当ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表が保持される記憶領域を割り当てる分岐先アドレス対応表割当ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットが保持される記憶領域を割り当てる変換ルールセット割当ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３２０】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−１６）
加えて、（解決手段−１５）において、前記エミュレーションプログラムは、さらに、変換される前の第２種分岐命令が前記第２種命令列記憶領域に保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列記憶領域に保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表が保持される記憶領域を割り当てる保持先アドレス対応表割当ステップと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【０３２１】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−１７）
加えて、（解決手段−１６）において、前記エミュレーションプログラムは、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出す代替命令書換ステップをコンピュータに実行させ、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【０３２２】
これによって、さらに、前述の（効果−９）と同等の効果がある。
（解決手段−１８）
加えて、（解決手段−１７）において、前記代替命令書換ステップは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３２３】
これによって、さらに、前述の（効果−１０）と同等の効果がある。
（解決手段−１９）
本発明に係わるエミュレーション回路情報は、マイクロプロセッサの命令セットを第１種命令セットとし、第１種命令セットとは異なる第２種命令セットに基づいて作製されたプログラムを変換して、前記マイクロプロセッサに実行させるデバイスをプログラマブルロジックデバイスに形成させるエミュレーション回路情報であって、少なくとも１つ以上の連なる命令を命令列として、第２種命令セットに基づいて作製されたプログラムを構成する命令列を保持する第２種命令列保持ユニットと、前記第２種命令列保持ユニットで保持されている命令列を第２種命令列とし、第２種命令セットにおける分岐命令を第２種分岐命令とし、第２種命令列において第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、第１種命令セットに基づいて構成される命令列に、変換対象命令列を変換する第２種命令変換ユニットと、前記第２種命令変換ユニットで変換された後の命令列を保持する第１種命令列保持ユニットと、前記第１種命令列保持ユニットで保持されている命令列を第１種命令列として、変換対象命令列が前記第２種命令変換ユニットで変換されてから、前記マイクロプロセッサに第１種命令列を実行させる第１種命令実行ユニットとをプログラマブルロジックデバイスに形成させるとする。
【０３２４】
これによって、本発明に係わるエミュレーション回路情報により形成されたプログラマブルロジックデバイスは、前述の（効果−１）〜（効果−３）と同等の効果がある。
（解決手段−２０）
加えて、（解決手段−１９）において、前記エミュレーション回路情報は、さらに、第２種命令セットの命令を第２種命令とし、変換される前の第２種命令が前記第２種命令列保持ユニットで保持されているアドレスを第２種命令取り込みアドレスとして、第２種命令取り込みアドレスを保持する第２種命令取り込みアドレス保持ユニットと、第１種命令セットの命令を第１種命令とし、実行される前の第１種命令が前記第１種命令列保持ユニットで保持されているアドレスを第１種命令取り込みアドレスとして、第１種命令取り込みアドレスを保持する第１種命令取り込みアドレス保持ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、呼び出されると、呼び出された時点の第２種命令取り込みアドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を変換対象命令列として、変換対象命令列を変換し、前記第１種命令実行ユニットは、呼び出されると、呼び出された時点の第１種命令取り込みアドレスに保持されている第１種命令から、前記マイクロプロセッサに第１種命令列を実行させるとしてもよい。
【０３２５】
これによって、さらに、前述の（効果−４）と同等の効果がある。
（解決手段−２１）
加えて、（解決手段−２０）において、前記エミュレーション回路情報は、さらに、変換された後の第１種命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ユニットと、前記第１種命令列保持ユニットで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ユニットと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ユニットと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０３２６】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−２２）
加えて、（解決手段−２１）において、前記エミュレーション回路情報は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ユニットで保持されているアドレスを第２種保持先アドレスとし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令とし、代替命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種保持先アドレスとし、第２種保持先アドレス、及び第１種保持先アドレスが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ユニットと、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、代替命令を書き込み、書き込んだ代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、保持先アドレス対応表に、第１種保持先アドレス、及び第２種保持先アドレスを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ユニットを呼び出す代替命令書込ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ユニットを呼び出し、前記第１種命令実行ユニットは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させるとしてもよい。
【０３２７】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−２３）
加えて、（解決手段−２２）において、前記エミュレーション回路情報は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレスを取得し、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ユニットを呼び出す代替命令書換ユニットをプログラマブルロジックデバイスに形成させ、前記代替命令書込ユニットは、前記代替命令書換ユニットを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ユニットは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ユニットを呼び出すとしてもよい。
【０３２８】
これによって、さらに、前述の（効果−９）と同等の効果がある。
（解決手段−２４）
加えて、（解決手段−２３）において、前記代替命令書換ユニットは、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０３２９】
これによって、さらに、前述の（効果−１０）と同等の効果がある。
（解決手段−２５）
或いは、（解決手段−２）において、前記エミュレーション装置は、さらに、変換された後の第１種命令が前記第１種命令列保持手段で保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持手段と、前記第１種命令列保持手段で保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持手段と、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持手段と、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持手段とを備え、前記第２種命令変換手段は、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１の第１種分岐先アドレス、及び第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第２の第１種分岐先アドレスを取得し、第１種命令セットにおける条件無しの分岐命令を第１種無条件分岐命令として、変換ルールセットに基づいて、取得した第１の第１種分岐先アドレスに分岐する第１種分岐命令、及び取得した第２の第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令、及び第１種無条件分岐命令を書き込み、書き込んだ第１種分岐命令、及び第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３３０】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−２６）
加えて、（解決手段−２５）において、前記第２種命令変換手段は、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の次アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３３１】
これによって、さらに、後述の（効果−１１）に示す効果がある。
（効果−１１）当該第２種分岐命令の次アドレスに保持されている第２種命令から継続して変換することにより、実行過程に遷移する回数を削減することが可能という効果がある。また、連続して実行する命令数が増加する。さらに、分岐する場合、及び分岐しない場合のいずれにおいても、変換過程に遷移せずに、実行を継続することが可能という効果がある。結果、遷移に費やす時間を減少することが可能という効果がある。
【０３３２】
（解決手段−２７）
加えて、（解決手段−２６）において、前記第２種命令変換手段は、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、分岐する条件が逆の関係にあたる第１種分岐命令を第１種逆条件分岐命令として、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３３３】
これによって、さらに、後述の（効果−１２）に示す効果がある。
（効果−１２）当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から継続して変換することにより、実行過程に遷移する回数を削減することが可能という効果がある。また、連続して実行する命令数が増加する。さらに、分岐する場合、及び分岐しない場合のいずれにおいても、変換過程に遷移せずに、実行を継続することが可能という効果がある。結果、遷移に費やす時間を減少することが可能という効果がある。
【０３３４】
（解決手段−２８）
加えて、（解決手段−２７）において、前記エミュレーション装置は、さらに、前記第１種命令実行手段で実行された第１種命令の結果状態が示される状態フラグを保持する第１種命令状態フラグ保持手段と、前記第１種命令状態フラグ保持手段から転送された状態フラグを保持する第２種命令状態フラグ保持手段と、前記第１種命令状態フラグ保持手段で保持されている状態フラグを転送する第１種命令を状態フラグ転送命令とし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令として、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込み、第１種命令状態フラグ保持手段に、第２種命令状態フラグ保持手段で保持されている状態フラグを転送し、前記第１種命令実行手段を呼び出す代替命令書込手段とを備え、前記第２種命令変換手段は、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込手段を呼び出し、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が状態フラグ転送命令であるならば真とし、否ならば偽とする状態フラグ転送命令識別条件を判定し、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ保持手段に、第１種命令状態フラグ保持手段で保持されている状態フラグを転送し、状態フラグ転送命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、”当該第１種命令が第１種無条件分岐命令である”、及び”当該第１種命令が第１種分岐命令であり、且つ第１種命令状態フラグ保持手段で保持されている状態フラグに基づいて、当該第１種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第１種分岐条件を判定し、第１種分岐条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させ、実行させた第１種命令の結果を示す状態に、第１種命令状態フラグ保持手段で保持されている状態フラグを更新するとしてもよい。
【０３３５】
これによって、さらに、後述の（効果−１３）に示す効果がある。
（効果−１３）実行過程から変換過程に遷移した時点の状態フラグを保持し続けることが可能という効果がある。結果、遷移によって、状態フラグが変わっても、保持している状態フラグに基づいて、分岐命令を実行し、分岐先が変わることを抑制することが可能という効果がある。
【０３３６】
（解決手段−２９）
加えて、（解決手段−２８）において、前記エミュレーション装置は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持手段で保持されているアドレスを第２種保持先アドレスとし、当該第２種分岐命令から変換される第１種分岐命令の代わりとする代替命令が前記第１種命令列保持手段で保持されるアドレスを第１種保持先アドレスとし、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを書換フラグとし、”ＦＡＬＳＥ（０）”であるならば、当該第２種分岐命令の次アドレスに、”ＴＲＵＥ（０以外）”であるならば、当該第２種分岐命令の分岐先アドレスに分岐したことを示すフラグを分岐フラグとし、第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持手段を備え、前記代替命令書込手段は、書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定し、”ＦＡＬＳＥ（０）”に、書換フラグ、及び分岐フラグを設定し、保持先アドレス対応表に、設定した第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新するとしてもよい。
【０３３７】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−３０）
加えて、（解決手段−２９）において、前記エミュレーション装置は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレス、及び書換フラグを取得し、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする書換フラグ識別条件を判定し、書換フラグ識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスに保持されている代替命令を書き換え、書換フラグ識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスから状態フラグ転送命令のサイズ減算したアドレスに保持されている状態フラグ転送命令を書き換える代替命令書換手段を備え、前記代替命令書込手段は、前記代替命令書換手段を呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行手段は、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換手段を呼び出すとしてもよい。
【０３３８】
これによって、さらに、後述の（効果−１４）に示す効果がある。
（効果−１４）書換フラグを参照することにより、当該第２種分岐命令から変換されるはずであった第１種分岐命令の代わりに付加された状態フラグ転送命令、及び代替命令のいずれを書き換えるかを特定することが可能という効果がある。
【０３３９】
（解決手段−３１）
加えて、（解決手段−３０）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であるならば、第２種命令セットにおける条件無しの分岐命令を第２種無条件分岐命令とし、第２種命令セットにおける条件付きの分岐命令を第２種条件付分岐命令として、”解読した第２種命令が第２種無条件分岐命令である”、及び”解読した第２種命令が第２種条件付分岐命令であり、且つ第２種命令状態フラグ保持手段で保持されている状態フラグに基づいて、解読した第２種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第２種分岐条件を判定し、第２種分岐条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３４０】
これによって、さらに、後述の（効果−１５）〜（効果−１６）に示す効果がある。
（効果−１５）当該第２種分岐命令が分岐しない場合と等価の第１種逆条件分岐命令に、状態フラグ転送命令を書き換えることが可能という効果がある。
（効果−１６）変換過程に遷移した後に実行過程に遷移し、設定した第１種分岐先アドレスで保持される第１種命令から実行することで、当該第２種分岐命令が分岐しなかった場合の動作を模倣することが可能という効果がある。
【０３４１】
（解決手段−３２）
加えて、（解決手段−３１）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持手段に、第２種命令状態フラグ保持手段で保持されている状態フラグを転送し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３４２】
これによって、さらに、後述の（効果−１７）に示す効果がある。
（効果−１７）変換過程に遷移した後に実行過程に遷移せずとも、直接実行過程に遷移し、取得した第１種分岐先アドレスに保持されている第１種命令から実行することで、当該第２種分岐命令が分岐しなかった場合の動作を模倣することが可能という効果がある。
【０３４３】
（解決手段−３３）
加えて、（解決手段−３２）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３４４】
これによって、さらに、後述の（効果−１８）〜（効果−１９）に示す効果がある。
（効果−１８）当該第２種分岐命令が分岐する場合と等価の第１種分岐命令に、状態フラグ転送命令を書き換えることが可能という効果がある。
（効果−１９）設定した第１種分岐先アドレスに保持される第１種命令から実行することで、当該第２種分岐命令が分岐した場合の動作を模倣することが可能という効果がある。
【０３４５】
（解決手段−３４）
加えて、（解決手段−３３）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持手段に、第２種命令状態フラグ保持手段で保持されている状態フラグを転送し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３４６】
これによって、さらに、後述の（効果−２０）に示す効果がある。
（効果−２０）変換過程に遷移した後に実行過程に遷移せずとも、直接実行過程に遷移し、取得した第１種分岐先アドレスに保持されている第１種命令から実行することで、当該第２種分岐命令が分岐した場合の動作を模倣することが可能という効果がある。
【０３４７】
（解決手段−３５）
加えて、（解決手段−３４）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている分岐フラグを取得し、取得した分岐フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする分岐フラグ識別条件を判定し、分岐フラグ識別条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３４８】
これによって、さらに、後述の（効果−２１）に示す効果がある。
（効果−２１）当該第２種分岐命令が分岐先アドレスに分岐する場合と等価の第１種無条件分岐命令に、代替命令を書き換える。さらに、以前、当該第２種分岐命令が分岐先アドレスに分岐しない場合として変換した第１種逆条件分岐命令に連なり、当該第２種分岐命令が分岐先アドレスに分岐する場合として変換した第１種無条件分岐命令を保持することが可能という効果がある。結果、当該第２種分岐命令が分岐する場合、及び分岐しない場合のいずれに対しても動作を模倣することが可能という効果がある。
【０３４９】
（解決手段−３６）
加えて、（解決手段−３５）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３５０】
これによって、さらに、後述の（効果−２２）に示す効果がある。
（効果−２２）当該第２種分岐命令の分岐先アドレスに保持されている第２種命令からの再変換処理を省略しつつ、当該第２種分岐命令が分岐する場合、及び分岐しない場合のいずれに対しても動作を模倣することが可能という効果がある。
【０３５１】
（解決手段−３７）
加えて、（解決手段−３６）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３５２】
これによって、さらに、後述の（効果−２３）に示す効果がある。
（効果−２３）当該第２種分岐命令が分岐先アドレスに分岐しない場合と等価の第１種無条件分岐命令に、代替命令を書き換える。さらに、以前、当該第２種分岐命令が分岐先アドレスに分岐する場合として変換した第１種分岐命令に連なり、当該第２種分岐命令が分岐先アドレスに分岐しない場合として変換した第１種無条件分岐命令を保持することが可能という効果がある。結果、当該第２種分岐命令が分岐しない場合、及び分岐する場合のいずれに対しても動作を模倣することが可能という効果がある。
【０３５３】
（解決手段−３８）
加えて、（解決手段−３７）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３５４】
これによって、さらに、後述の（効果−２４）に示す効果がある。
（効果−２４）当該第２種分岐命令の次アドレスに保持されている第２種命令からの再変換処理を省略しつつ、当該第２種分岐命令が分岐しない場合、及び分岐する場合のいずれに対しても動作を模倣することが可能という効果がある。
（解決手段−３９）
或いは、（解決手段−２８）において、前記エミュレーション装置は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持手段で保持されているアドレスを第２種保持先アドレスとし、当該第２種分岐命令から変換される第１種分岐命令の代わりとする代替命令が前記第１種命令列保持手段で保持されるアドレスを第１種保持先アドレスとし、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを書換フラグとし、第１種保持先アドレス、第２種保持先アドレス、及び書換フラグが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持手段を備え、前記代替命令書込手段は、書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定し、”ＦＡＬＳＥ（０）”に、書換フラグを設定し、保持先アドレス対応表に、設定した第１種保持先アドレス、第２種保持先アドレス、及び書換フラグを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新するとしてもよい。
【０３５５】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−４０）
加えて、（解決手段−３９）において、前記エミュレーション装置は、さらに、前記第１種命令実行手段から呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレス、及び書換フラグを取得し、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする書換フラグ識別条件を判定し、書換フラグ識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスに保持されている代替命令を書き換え、書換フラグ識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスから状態フラグ転送命令のサイズ減算したアドレスに保持されている状態フラグ転送命令を書き換える代替命令書換手段を備え、前記代替命令書込手段は、前記代替命令書換手段を呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行手段は、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換手段を呼び出すとしてもよい。
【０３５６】
これによって、さらに、前述の（効果−１４）と同等の効果がある。
（解決手段−４１）
加えて、（解決手段−４０）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３５７】
これによって、さらに、前述の（効果−１８）〜（効果−１９）と同等の効果がある。
（解決手段−４２）
加えて、（解決手段−４１）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持手段に、第２種命令状態フラグ保持手段で保持されている状態フラグを転送し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３５８】
これによって、さらに、前述の（効果−２０）と同等の効果がある。
（解決手段−４３）
加えて、（解決手段−４２）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３５９】
これによって、さらに、前述の（効果−２３）と同等の効果がある。
（解決手段−４４）
加えて、（解決手段−４３）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３６０】
これによって、さらに、前述の（効果−２４）と同等の効果がある。
（解決手段−４５）
或いは、（解決手段−４０）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であるならば、第２種分岐条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレスを更新し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３６１】
これによって、さらに、前述の（効果−１５）〜（効果−１６）と同等の効果がある。
（解決手段−４６）
加えて、（解決手段−４５）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持手段に、第２種命令状態フラグ保持手段で保持されている状態フラグを転送し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３６２】
これによって、さらに、前述の（効果−１７）と同等の効果がある。
（解決手段−４７）
加えて、（解決手段−４６）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換手段を呼び出すとしてもよい。
【０３６３】
これによって、さらに、前述の（効果−２１）と同等の効果がある。
（解決手段−４８）
加えて、（解決手段−４７）において、前記代替命令書換手段は、書換フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行手段を呼び出すとしてもよい。
【０３６４】
これによって、さらに、前述の（効果−２２）と同等の効果がある。
（解決手段−４９）
或いは、（解決手段−３８）において、前記第２種命令変換手段は、第２種分岐命令を変換する際に、且つ当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、当該第２種命令が第２種無条件分岐命令であるならば真とし、否ならば偽とする第２種無条件分岐命令識別条件を判定し、第２種無条件分岐命令識別条件を判定した結果が真であるならば、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換し、第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込み、書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、第１種命令実行手段を呼び出し、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令を次の変換対象命令列として、継続して、次の変換対象命令列を変換し、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索するとしてもよい。
【０３６５】
これによって、さらに、後述の（効果−２５）に示す効果がある。
（効果−２５）第２種無条件分岐命令、及び第２種条件付分岐命令に区別して第２種分岐命令を処理することにより、第２種無条件分岐命令に対して、常時、分岐先アドレスに分岐することを念頭においた処理に最適化することが可能という効果がある。同様に、第２種条件付分岐命令に対して、分岐先アドレスに分岐するかしないかを念頭においた処理に最適化することが可能という効果がある。
【０３６６】
（解決手段−５０）
加えて、（解決手段−４９）において、前記変換ルールセット保持手段は、第２種分岐命令から変換される第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令の前置きとなる第１種命令列を第１種前置命令列として、第２種分岐命令、第１種前置命令列、第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令が対応付けられている変換ルールセットを保持し、前記第２種命令変換手段は、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、第１種命令書き込みアドレスから、変換ルールセットに基づいて、当該第２種分岐命令と対応付けられている第１前置命令列を書き込み書き込んだ第１種前置命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新するとしてもよい。
【０３６７】
これによって、さらに、後述の（効果−２６）に示す効果がある。
（効果−２６）当該第２種分岐命令と等価であるために、複数の第１種命令を要する場合でも、対応することが可能という効果がある。
（解決手段−５１）
或いは、（解決手段−８）において、前記エミュレーション方法は、さらに、変換された後の第１種命令が前記第１種命令列保持ステップで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ステップと、前記第１種命令列保持ステップで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ステップとを含み、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１の第１種分岐先アドレス、及び第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第２の第１種分岐先アドレスを取得し、第１種命令セットにおける条件無しの分岐命令を第１種無条件分岐命令として、変換ルールセットに基づいて、取得した第１の第１種分岐先アドレスに分岐する第１種分岐命令、及び取得した第２の第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令、及び第１種無条件分岐命令を書き込み、書き込んだ第１種分岐命令、及び第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３６８】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−５２）
加えて、（解決手段−５１）において、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の次アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３６９】
これによって、さらに、前述の（効果−１１）と同等の効果がある。
（解決手段−５３）
加えて、（解決手段−５２）において、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、分岐する条件が逆の関係にあたる第１種分岐命令を第１種逆条件分岐命令として、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３７０】
これによって、さらに、前述の（効果−１２）と同等の効果がある。
（解決手段−５４）
加えて、（解決手段−５３）において、前記エミュレーション方法は、さらに、前記第１種命令実行ステップで実行された第１種命令の結果状態が示される状態フラグを保持する第１種命令状態フラグ保持ステップと、前記第１種命令状態フラグ保持ステップから転送された状態フラグを保持する第２種命令状態フラグ保持ステップと、前記第１種命令状態フラグ保持ステップで保持されている状態フラグを転送する第１種命令を状態フラグ転送命令とし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令として、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込み、第１種命令状態フラグ保持ステップに、第２種命令状態フラグ保持ステップで保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとを含み、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が状態フラグ転送命令であるならば真とし、否ならば偽とする状態フラグ転送命令識別条件を判定し、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ保持ステップに、第１種命令状態フラグ保持ステップで保持されている状態フラグを転送し、状態フラグ転送命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、”当該第１種命令が第１種無条件分岐命令である”、及び”当該第１種命令が第１種分岐命令であり、且つ第１種命令状態フラグ保持ステップで保持されている状態フラグに基づいて、当該第１種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第１種分岐条件を判定し、第１種分岐条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させ、実行させた第１種命令の結果を示す状態に、第１種命令状態フラグ保持ステップで保持されている状態フラグを更新するとしてもよい。
【０３７１】
これによって、さらに、前述の（効果−１３）と同等の効果がある。
（解決手段−５５）
加えて、（解決手段−５４）において、前記エミュレーション方法は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ステップで保持されているアドレスを第２種保持先アドレスとし、当該第２種分岐命令から変換される第１種分岐命令の代わりとする代替命令が前記第１種命令列保持ステップで保持されるアドレスを第１種保持先アドレスとし、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを書換フラグとし、”ＦＡＬＳＥ（０）”であるならば、当該第２種分岐命令の次アドレスに、”ＴＲＵＥ（０以外）”であるならば、当該第２種分岐命令の分岐先アドレスに分岐したことを示すフラグを分岐フラグとし、第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ステップを含み、前記代替命令書込ステップは、書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定し、”ＦＡＬＳＥ（０）”に、書換フラグ、及び分岐フラグを設定し、保持先アドレス対応表に、設定した第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新するとしてもよい。
【０３７２】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−５６）
加えて、（解決手段−５５）において、前記エミュレーション方法は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレス、及び書換フラグを取得し、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする書換フラグ識別条件を判定し、書換フラグ識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスに保持されている代替命令を書き換え、書換フラグ識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスから状態フラグ転送命令のサイズ減算したアドレスに保持されている状態フラグ転送命令を書き換える代替命令書換ステップを含み、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【０３７３】
これによって、さらに、前述の（効果−１４）と同等の効果がある。
（解決手段−５７）
加えて、（解決手段−５６）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であるならば、第２種命令セットにおける条件無しの分岐命令を第２種無条件分岐命令とし、第２種命令セットにおける条件付きの分岐命令を第２種条件付分岐命令として、”解読した第２種命令が第２種無条件分岐命令である”、及び”解読した第２種命令が第２種条件付分岐命令であり、且つ第２種命令状態フラグ保持ステップで保持されている状態フラグに基づいて、解読した第２種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第２種分岐条件を判定し、第２種分岐条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３７４】
これによって、さらに、前述の（効果−１５）〜（効果−１６）と同等の効果がある。
（解決手段−５８）
加えて、（解決手段−５７）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持ステップに、第２種命令状態フラグ保持ステップで保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３７５】
これによって、さらに、前述の（効果−１７）と同等の効果がある。
（解決手段−５９）
加えて、（解決手段−５８）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３７６】
これによって、さらに、前述の（効果−１８）〜（効果−１９）と同等の効果がある。
（解決手段−６０）
加えて、（解決手段−５９）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持ステップに、第２種命令状態フラグ保持ステップで保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３７７】
これによって、さらに、前述の（効果−２０）と同等の効果がある。
（解決手段−６１）
加えて、（解決手段−６０）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている分岐フラグを取得し、取得した分岐フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする分岐フラグ識別条件を判定し、分岐フラグ識別条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３７８】
これによって、さらに、前述の（効果−２１）と同等の効果がある。
（解決手段−６２）
加えて、（解決手段−６１）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３７９】
これによって、さらに、前述の（効果−２２）と同等の効果がある。
（解決手段−６３）
加えて、（解決手段−６２）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３８０】
これによって、さらに、前述の（効果−２３）と同等の効果がある。
（解決手段−６４）
加えて、（解決手段−６３）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３８１】
これによって、さらに、前述の（効果−２４）と同等の効果がある。
（解決手段−６５）
加えて、（解決手段−６４）において、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、且つ当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、当該第２種命令が第２種無条件分岐命令であるならば真とし、否ならば偽とする第２種無条件分岐命令識別条件を判定し、第２種無条件分岐命令識別条件を判定した結果が真であるならば、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換し、第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込み、書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、第１種命令実行ステップを呼び出し、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令を次の変換対象命令列として、継続して、次の変換対象命令列を変換し、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索するとしてもよい。
【０３８２】
これによって、さらに、前述の（効果−２５）と同等の効果がある。
（解決手段−６６）
加えて、（解決手段−６５）において、前記変換ルールセット保持ステップは、第２種分岐命令から変換される第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令の前置きとなる第１種命令列を第１種前置命令列として、第２種分岐命令、第１種前置命令列、第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令が対応付けられている変換ルールセットを保持し、前記第２種命令変換ステップは、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、第１種命令書き込みアドレスから、変換ルールセットに基づいて、当該第２種分岐命令と対応付けられている第１前置命令列を書き込み書き込んだ第１種前置命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新するとしてもよい。
【０３８３】
これによって、さらに、前述の（効果−２６）と同等の効果がある。
（解決手段−６７）
或いは、（解決手段−１４）において、前記エミュレーションプログラムは、さらに、変換された後の第１種命令が前記第１種命令列記憶領域に保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスが保持される記憶領域を割り当てる第１種命令書き込みアドレス割当ステップと、前記第１種命令列記憶領域に保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスが保持される記憶領域を割り当てる第１種命令終端アドレス割当ステップと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表が保持される記憶領域を割り当てる分岐先アドレス対応表割当ステップと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットが保持される記憶領域を割り当てる変換ルールセット割当ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１の第１種分岐先アドレス、及び第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第２の第１種分岐先アドレスを取得し、第１種命令セットにおける条件無しの分岐命令を第１種無条件分岐命令として、変換ルールセットに基づいて、取得した第１の第１種分岐先アドレスに分岐する第１種分岐命令、及び取得した第２の第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令、及び第１種無条件分岐命令を書き込み、書き込んだ第１種分岐命令、及び第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３８４】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−６８）
加えて、（解決手段−６７）において、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の次アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３８５】
これによって、さらに、前述の（効果−１１）と同等の効果がある。
（解決手段−６９）
加えて、（解決手段−６８）において、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、分岐する条件が逆の関係にあたる第１種分岐命令を第１種逆条件分岐命令として、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０３８６】
これによって、さらに、前述の（効果−１２）と同等の効果がある。
（解決手段−７０）
加えて、（解決手段−６９）において、前記エミュレーションプログラムは、さらに、前記第１種命令実行ステップで実行された第１種命令の結果状態が示される状態フラグが保持される記憶領域を割り当てる第１種命令状態フラグ割当ステップと、前記第１種命令状態フラグ割当ステップで割り当てられた記憶領域を第１種命令状態フラグ記憶領域として、前記第１種命令状態フラグ記憶領域から転送された状態フラグが保持される記憶領域を割り当てる第２種命令状態フラグ割当ステップと、前記第１種命令状態フラグ記憶領域に保持されている状態フラグを転送する第１種命令を状態フラグ転送命令とし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令として、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込み、前記第２種命令状態フラグ割当ステップで割り当てられた記憶領域を第２種命令状態フラグ記憶領域として、第１種命令状態フラグ記憶領域に、第２種命令状態フラグ記憶領域に保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出す代替命令書込ステップとをコンピュータに実行させ、前記第２種命令変換ステップは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ステップを呼び出し、前記第１種命令実行ステップは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が状態フラグ転送命令であるならば真とし、否ならば偽とする状態フラグ転送命令識別条件を判定し、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ割当ステップに、第１種命令状態フラグ記憶領域に保持されている状態フラグを転送し、状態フラグ転送命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、”当該第１種命令が第１種無条件分岐命令である”、及び”当該第１種命令が第１種分岐命令であり、且つ第１種命令状態フラグ記憶領域に保持されている状態フラグに基づいて、当該第１種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第１種分岐条件を判定し、第１種分岐条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させ、実行させた第１種命令の結果を示す状態に、第１種命令状態フラグ記憶領域に保持されている状態フラグを更新するとしてもよい。
【０３８７】
これによって、さらに、前述の（効果−１３）と同等の効果がある。
（解決手段−７１）
加えて、（解決手段−７０）において、前記エミュレーションプログラムは、さらに、変換される前の第２種分岐命令が前記第２種命令列記憶領域に保持されているアドレスを第２種保持先アドレスとし、当該第２種分岐命令から変換される第１種分岐命令の代わりとする代替命令が前記第１種命令列記憶領域に保持されるアドレスを第１種保持先アドレスとし、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを書換フラグとし、”ＦＡＬＳＥ（０）”であるならば、当該第２種分岐命令の次アドレスに、”ＴＲＵＥ（０以外）”であるならば、当該第２種分岐命令の分岐先アドレスに分岐したことを示すフラグを分岐フラグとし、第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表が保持される記憶領域を割り当てる保持先アドレス対応表割当ステップをコンピュータに実行させ、前記代替命令書込ステップは、書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定し、”ＦＡＬＳＥ（０）”に、書換フラグ、及び分岐フラグを設定し、保持先アドレス対応表に、設定した第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新するとしてもよい。
【０３８８】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−７２）
加えて、（解決手段−７１）において、前記エミュレーションプログラムは、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレス、及び書換フラグを取得し、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする書換フラグ識別条件を判定し、書換フラグ識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスに保持されている代替命令を書き換え、書換フラグ識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスから状態フラグ転送命令のサイズ減算したアドレスに保持されている状態フラグ転送命令を書き換える代替命令書換ステップをコンピュータに実行させ、前記代替命令書込ステップは、前記代替命令書換ステップを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ステップは、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ステップを呼び出すとしてもよい。
【０３８９】
これによって、さらに、前述の（効果−１４）と同等の効果がある。
（解決手段−７３）
加えて、（解決手段−７２）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であるならば、第２種命令セットにおける条件無しの分岐命令を第２種無条件分岐命令とし、第２種命令セットにおける条件付きの分岐命令を第２種条件付分岐命令として、”解読した第２種命令が第２種無条件分岐命令である”、及び”解読した第２種命令が第２種条件付分岐命令であり、且つ第２種命令状態フラグ記憶領域に保持されている状態フラグに基づいて、解読した第２種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第２種分岐条件を判定し、第２種分岐条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３９０】
これによって、さらに、前述の（効果−１５）〜（効果−１６）と同等の効果がある。
（解決手段−７４）
加えて、（解決手段−７３）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ割当ステップに、第２種命令状態フラグ記憶領域に保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３９１】
これによって、さらに、前述の（効果−１７）と同等の効果がある。
（解決手段−７５）
加えて、（解決手段−７４）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３９２】
これによって、さらに、前述の（効果−１８）〜（効果−１９）と同等の効果がある。
（解決手段−７６）
加えて、（解決手段−７５）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ記憶領域に、第２種命令状態フラグ記憶領域に保持されている状態フラグを転送し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３９３】
これによって、さらに、前述の（効果−２０）と同等の効果がある。
（解決手段−７７）
加えて、（解決手段−７６）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている分岐フラグを取得し、取得した分岐フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする分岐フラグ識別条件を判定し、分岐フラグ識別条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３９４】
これによって、さらに、前述の（効果−２１）と同等の効果がある。
（解決手段−７８）
加えて、（解決手段−７７）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３９５】
これによって、さらに、前述の（効果−２２）と同等の効果がある。
（解決手段−７９）
加えて、（解決手段−７８）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ステップを呼び出すとしてもよい。
【０３９６】
これによって、さらに、前述の（効果−２３）と同等の効果がある。
（解決手段−８０）
加えて、（解決手段−７９）において、前記代替命令書換ステップは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ステップを呼び出すとしてもよい。
【０３９７】
これによって、さらに、前述の（効果−２４）と同等の効果がある。
（解決手段−８１）
加えて、（解決手段−８０）において、前記第２種命令変換ステップは、第２種分岐命令を変換する際に、且つ当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、当該第２種命令が第２種無条件分岐命令であるならば真とし、否ならば偽とする第２種無条件分岐命令識別条件を判定し、第２種無条件分岐命令識別条件を判定した結果が真であるならば、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換し、第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込み、書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、第１種命令実行ステップを呼び出し、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令を次の変換対象命令列として、継続して、次の変換対象命令列を変換し、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索するとしてもよい。
【０３９８】
これによって、さらに、前述の（効果−２５）と同等の効果がある。
（解決手段−８２）
加えて、（解決手段−８１）において、前記変換ルールセット割当ステップは、第２種分岐命令から変換される第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令の前置きとなる第１種命令列を第１種前置命令列として、第２種分岐命令、第１種前置命令列、第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令が対応付けられている変換ルールセットを保持する記憶領域を割り当て、前記第２種命令変換ステップは、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、第１種命令書き込みアドレスから、変換ルールセットに基づいて、当該第２種分岐命令と対応付けられている第１前置命令列を書き込み書き込んだ第１種前置命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新するとしてもよい。
【０３９９】
これによって、さらに、前述の（効果−２６）と同等の効果がある。
（解決手段−８３）
或いは、（解決手段−２０）において、前記エミュレーション回路情報は、さらに、変換された後の第１種命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種命令書き込みアドレスとして、第１種命令書き込みアドレスを保持する第１種命令書き込みアドレス保持ユニットと、前記第１種命令列保持ユニットで保持されている第１種命令の終端アドレスを第１種命令終端アドレスとして、第１種命令終端アドレスを保持する第１種命令終端アドレス保持ユニットと、第１種命令セットにおける分岐命令を第１種分岐命令とし、分岐命令により分岐する先のアドレスを分岐先アドレスとし、第２種分岐命令の分岐先アドレスを第２種分岐先アドレスとし、第１種分岐命令の分岐先アドレスを第１種分岐先アドレスとし、第２種分岐先アドレス、及び第１種分岐先アドレスが対応付けられて登録される表を分岐先アドレス対応表として、分岐先アドレス対応表を保持する分岐先アドレス対応表保持ユニットと、第２種命令列を第１種命令列に変換する際の規則が示された表を変換ルールセットとして、変換ルールセットを保持する変換ルールセット保持ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、第２種分岐命令を変換する際に、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索し、検索キーと一致する第２種分岐先アドレスが、分岐先アドレス対応表に登録されているならば真とし、否ならば偽とする分岐先アドレス登録条件を判定し、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１の第１種分岐先アドレス、及び第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第２の第１種分岐先アドレスを取得し、第１種命令セットにおける条件無しの分岐命令を第１種無条件分岐命令として、変換ルールセットに基づいて、取得した第１の第１種分岐先アドレスに分岐する第１種分岐命令、及び取得した第２の第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令、及び第１種無条件分岐命令を書き込み、書き込んだ第１種分岐命令、及び第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０４００】
これによって、さらに、前述の（効果−５）〜（効果−７）と同等の効果がある。
（解決手段−８４）
加えて、（解決手段−８３）において、前記第２種命令変換ユニットは、第１の検索キーで分岐先アドレス登録条件を判定した結果が真であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、分岐先アドレス対応表から、第１の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、書き込んだ第１種分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の次アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０４０１】
これによって、さらに、前述の（効果−１１）と同等の効果がある。
（解決手段−８５）
加えて、（解決手段−８４）において、前記第２種命令変換ユニットは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、第２の検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、分岐する条件が逆の関係にあたる第１種分岐命令を第１種逆条件分岐命令として、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、書き込んだ第１種逆条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令までを一つの区切りとする命令列を次の変換対象命令列として、継続して、次の変換対象命令列を変換するとしてもよい。
【０４０２】
これによって、さらに、前述の（効果−１２）と同等の効果がある。
（解決手段−８６）
加えて、（解決手段−８５）において、前記エミュレーション回路情報は、さらに、前記第１種命令実行ユニットで実行された第１種命令の結果状態が示される状態フラグを保持する第１種命令状態フラグ保持ユニットと、前記第１種命令状態フラグ保持ユニットから転送された状態フラグを保持する第２種命令状態フラグ保持ユニットと、前記第１種命令状態フラグ保持ユニットで保持されている状態フラグを転送する第１種命令を状態フラグ転送命令とし、第２種分岐命令から変換される第１種分岐命令の代わりとする第１種命令を代替命令として、呼び出されると、呼び出された時点の第１種命令書き込みアドレスから、状態フラグ転送命令、及び代替命令を書き込み、第１種命令状態フラグ保持ユニットに、第２種命令状態フラグ保持ユニットで保持されている状態フラグを転送し、前記第１種命令実行ユニットを呼び出す代替命令書込ユニットとをプログラマブルロジックデバイスに形成させ、前記第２種命令変換ユニットは、第１の検索キーで分岐先アドレス登録条件を判定した結果が偽であり、且つ第２の検索キーで分岐先アドレス登録条件を判定した結果が偽であるならば、前記代替命令書込ユニットを呼び出し、前記第１種命令実行ユニットは、第１種命令を実行させる際に、当該第１種命令が代替命令であるならば真とし、否ならば偽とする代替命令識別条件を判定し、代替命令識別条件を判定した結果が偽であるならば、当該第１種命令が状態フラグ転送命令であるならば真とし、否ならば偽とする状態フラグ転送命令識別条件を判定し、状態フラグ転送命令識別条件を判定した結果が真であるならば、第２種命令状態フラグ保持ユニットに、第１種命令状態フラグ保持ユニットで保持されている状態フラグを転送し、状態フラグ転送命令識別条件を判定した結果が偽であるならば、当該第１種命令が第１種分岐命令であるならば真とし、否ならば偽とする第１種分岐命令識別条件を判定し、第１種分岐命令識別条件を判定した結果が真であるならば、”当該第１種命令が第１種無条件分岐命令である”、及び”当該第１種命令が第１種分岐命令であり、且つ第１種命令状態フラグ保持ユニットで保持されている状態フラグに基づいて、当該第１種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第１種分岐条件を判定し、第１種分岐条件を判定した結果が真であるならば、当該第１種命令の分岐先アドレスに、第１種命令取り込みアドレスを更新し、第１種分岐命令識別条件を判定した結果が偽であるならば、前記マイクロプロセッサに、当該第１種命令を実行させ、実行させた第１種命令の結果を示す状態に、第１種命令状態フラグ保持ユニットで保持されている状態フラグを更新するとしてもよい。
【０４０３】
これによって、さらに、前述の（効果−１３）と同等の効果がある。
（解決手段−８７）
加えて、（解決手段−８６）において、前記エミュレーション回路情報は、さらに、変換される前の第２種分岐命令が前記第２種命令列保持ユニットで保持されているアドレスを第２種保持先アドレスとし、当該第２種分岐命令から変換される第１種分岐命令の代わりとする代替命令が前記第１種命令列保持ユニットで保持されるアドレスを第１種保持先アドレスとし、”ＦＡＬＳＥ（０）”であるならば、状態フラグ転送命令を、”ＴＲＵＥ（０以外）”であるならば、代替命令を書き換えることを示すフラグを書換フラグとし、”ＦＡＬＳＥ（０）”であるならば、当該第２種分岐命令の次アドレスに、”ＴＲＵＥ（０以外）”であるならば、当該第２種分岐命令の分岐先アドレスに分岐したことを示すフラグを分岐フラグとし、第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグが対応付けられて登録される表を保持先アドレス対応表として、保持先アドレス対応表を保持する保持先アドレス対応表保持ユニットをプログラマブルロジックデバイスに形成させ、前記代替命令書込ユニットは、書き込んだ状態フラグ転送命令、及び代替命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、第２種命令取り込みアドレスから第２種分岐命令のサイズを減算したアドレスに、第２種保持先アドレスを設定し、”ＦＡＬＳＥ（０）”に、書換フラグ、及び分岐フラグを設定し、保持先アドレス対応表に、設定した第１種保持先アドレス、第２種保持先アドレス、書換フラグ、及び分岐フラグを対応付けたレコードを登録し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新するとしてもよい。
【０４０４】
これによって、さらに、前述の（効果−８）と同等の効果がある。
（解決手段−８８）
加えて、（解決手段−８７）において、前記エミュレーション回路情報は、さらに、呼び出されると、呼び出された時点の第１種命令取り込みアドレスから代替命令のサイズを減算したアドレスに、第１種保持先アドレスを設定し、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている第２種保持先アドレス、及び書換フラグを取得し、取得した書換フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする書換フラグ識別条件を判定し、書換フラグ識別条件を判定した結果が真であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスに保持されている代替命令を書き換え、書換フラグ識別条件を判定した結果が偽であるならば、変換ルールセットに基づいて、取得した第２種保持先アドレスに保持されている第２種分岐命令から変換した第１種命令に、設定した第１種保持先アドレスから状態フラグ転送命令のサイズ減算したアドレスに保持されている状態フラグ転送命令を書き換える代替命令書換ユニットをプログラマブルロジックデバイスに形成させ、前記代替命令書込ユニットは、前記代替命令書換ユニットを呼び出す第１種命令を代替命令として書き込み、前記第１種命令実行ユニットは、代替命令識別条件を判定した結果が真であるならば、前記代替命令書換ユニットを呼び出すとしてもよい。
【０４０５】
これによって、さらに、前述の（効果−１４）と同等の効果がある。
（解決手段−８９）
加えて、（解決手段−８８）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が偽であるならば、第２種命令セットにおける条件無しの分岐命令を第２種無条件分岐命令とし、第２種命令セットにおける条件付きの分岐命令を第２種条件付分岐命令として、”解読した第２種命令が第２種無条件分岐命令である”、及び”解読した第２種命令が第２種条件付分岐命令であり、且つ第２種命令状態フラグ保持ユニットで保持されている状態フラグに基づいて、解読した第２種条件付分岐命令の条件コードにより示される条件を判定した結果が真である”のいずれかであるならば真とし、否ならば偽とする第２種分岐条件を判定し、第２種分岐条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、次に書き込まれる命令列までの空きサイズをクリアランスサイズとして、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ユニットを呼び出すとしてもよい。
【０４０６】
これによっって、さらに、前述の（効果−１５）〜（効果−１６）と同等の効果がある。
（解決手段−９０）
加えて、（解決手段−８９）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種逆条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種逆条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＦＡＬＳＥ（０）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持ユニットに、第２種命令状態フラグ保持ユニットで保持されている状態フラグを転送し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０４０７】
これによって、さらに、前述の（効果−１７）と同等の効果がある。
（解決手段−９１）
加えて、（解決手段−９０）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、前記第２種命令変換ユニットを呼び出すとしてもよい。
【０４０８】
これによって、さらに、前述の（効果−１８）〜（効果−１９）と同等の効果がある。
（解決手段−９２）
加えて、（解決手段−９１）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が偽であり、且つ第２種分岐条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスから状態フラグ転送命令のサイズを減算したアドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている分岐フラグを更新し、”ＴＲＵＥ（０以外）”に、設定した第１種保持先アドレスと対応付けられて保持先アドレス対応表に登録されている書換フラグを更新し、第１種命令状態フラグ保持ユニットに、第２種命令状態フラグ保持ユニットで保持されている状態フラグを転送し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０４０９】
これによって、さらに、前述の（効果−２０）と同等の効果がある。
（解決手段−９３）
加えて、（解決手段−９２）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が真であるならば、保持先アドレス対応表から、設定した第１種保持先アドレスと対応付けられている分岐フラグを取得し、取得した分岐フラグが”ＴＲＵＥ（０以外）”であるならば真とし、”ＦＡＬＳＥ（０）”であるならば偽とする分岐フラグ識別条件を判定し、分岐フラグ識別条件を判定した結果が偽であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の分岐先アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ユニットを呼び出すとしてもよい。
【０４１０】
これによって、さらに、前述の（効果−２１）と同等の効果がある。
（解決手段−９４）
加えて、（解決手段−９３）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が偽であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０４１１】
これによって、さらに、前述の（効果−２２）と同等の効果がある。
（解決手段−９５）
加えて、（解決手段−９４）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であるならば、取得した第２種保持先アドレスに保持されている第２種分岐命令の次アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が偽であるならば、呼び出された時点の第１種命令終端アドレスからクリアランスサイズを加算したアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の次アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、設定した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、当該第２種分岐命令の次アドレスに、第２種命令取り込みアドレスを更新し、設定した第１種分岐先アドレスに、第１種命令書き込みアドレス、及び第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第２種命令変換ユニットを呼び出すとしてもよい。
【０４１２】
これによって、さらに、前述の（効果−２３）と同等の効果がある。
（解決手段−９６）
加えて、（解決手段−９５）において、前記代替命令書換ユニットは、書換フラグ識別条件を判定した結果が真であり、且つ分岐フラグ識別条件を判定した結果が真であり、且つ分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、設定した第１種保持先アドレスに、第１種命令書き込みアドレスを更新し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、当該第２種分岐命令を変換し、更新した第１種命令書き込みアドレスから、変換した第１種無条件分岐命令を書き込み、取得した第１種分岐先アドレスに、第１種命令取り込みアドレスを更新し、保持先アドレス対応表から、設定した第１種保持先アドレス、及び取得した第２種保持先アドレスが対応付けられているレコードを削除し、前記第１種命令実行ユニットを呼び出すとしてもよい。
【０４１３】
これによって、さらに、前述の（効果−２４）と同等の効果がある。
（解決手段−９７）
加えて、（解決手段−９６）において、前記第２種命令変換ユニットは、第２種分岐命令を変換する際に、且つ当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、当該第２種命令が第２種無条件分岐命令であるならば真とし、否ならば偽とする第２種無条件分岐命令識別条件を判定し、第２種無条件分岐命令識別条件を判定した結果が真であるならば、当該第２種分岐命令の分岐先アドレスを検索キーとして、分岐先アドレス対応表を検索し、分岐先アドレス登録条件を判定し、分岐先アドレス登録条件を判定した結果が真であるならば、分岐先アドレス対応表から、検索キーと一致する第２種分岐先アドレスと対応付けられている第１種分岐先アドレスを取得し、変換ルールセットに基づいて、取得した第１種分岐先アドレスに分岐する第１種無条件分岐命令に、解読した第２種無条件分岐命令を変換し、第１種命令書き込みアドレスから、変換後の第１種無条件分岐命令を書き込み、書き込んだ第１種無条件分岐命令のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新し、更新した第１種命令書き込みアドレスに、第１種命令終端アドレスを更新し、第１種命令実行ユニットを呼び出し、分岐先アドレス登録条件を判定した結果が偽であるならば、第１種命令書き込みアドレスに、第１種分岐先アドレスを設定し、分岐先アドレス対応表に、当該第２種分岐命令の分岐先アドレス、及び設定した第１種分岐先アドレスを対応付けたレコードを登録し、計算した第２種分岐先アドレスに、第２種命令取り込みアドレスを更新し、当該第２種分岐命令の分岐先アドレスに保持されている第２種命令から次の第２種分岐命令を次の変換対象命令列として、継続して、次の変換対象命令列を変換し、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索するとしてもよい。
【０４１４】
これによって、さらに、前述の（効果−２５）と同等の効果がある。
（解決手段−９８）
加えて、（解決手段−９７）において、前記変換ルールセット保持ユニットは、第２種分岐命令から変換される第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令の前置きとなる第１種命令列を第１種前置命令列として、第２種分岐命令、第１種前置命令列、第１種条件付分岐命令、第１種逆条件分岐命令、及び第１種無条件分岐命令が対応付けられている変換ルールセットを保持し、前記第２種命令変換ユニットは、第２種無条件分岐命令識別条件を判定した結果が偽であるならば、当該第２種分岐命令の分岐先アドレスを第１の検索キーとし、当該第２種分岐命令の次アドレスを第２の検索キーとして、分岐先アドレス対応表を検索する前に、第１種命令書き込みアドレスから、変換ルールセットに基づいて、当該第２種分岐命令と対応付けられている第１前置命令列を書き込み書き込んだ第１種前置命令列のサイズ分増加したアドレスに、第１種命令書き込みアドレスを更新するとしてもよい。
【０４１５】
これによって、さらに、前述の（効果−２６）と同等の効果がある。
【図面の簡単な説明】
【図１】（ａ）は、第２種命令セットにおける分岐命令の一例を示し、（ｂ）は、第１種命令セットにおける分岐命令の一例を示す図である。
【図２】実施の形態１におけるエミュレーション装置の構成を示すブロック図である。
【図３】（ａ）は、分岐先アドレス対応表の一例を示し、（ｂ）は、保持先アドレス対応表の一例を示す図である。
【図４】実施の形態１におけるエミュレーション処理を示すフローチャート図その１である。
【図５】実施の形態１におけるエミュレーション処理を示すフローチャート図その２である。
【図６】実施の形態１におけるエミュレーション処理を示すフローチャート図その３である。
【図７】実施の形態１におけるエミュレーション処理を示すフローチャート図その４である。
【図８】実施の形態１におけるエミュレーション処理を示すフローチャート図その５である。
【図９】実施の形態１におけるエミュレーション処理を示すフローチャート図その６である。
【図１０】実施の形態１におけるエミュレーション処理を示すフローチャート図その７である。
【図１１】実施の形態１におけるエミュレーション装置の動作例を示す模式図その１である。
【図１２】実施の形態１におけるエミュレーション装置の動作例を示す模式図その２である。
【図１３】実施の形態１におけるエミュレーション装置の動作例を示す模式図その３である。
【図１４】実施の形態１におけるエミュレーション装置の動作例を示す模式図その４である。
【図１５】実施の形態２において、第２種分岐命令から第１種分岐命令に変換する際の変換ルールセットの一例を示す図である。
【図１６】実施の形態２におけるエミュレーション装置の構成を示すブロック図である。
【図１７】実施の形態２における保持先アドレス対応表の一例を示す図である。
【図１８】実施の形態２におけるエミュレーション処理を示すフローチャート図その１である。
【図１９】実施の形態２におけるエミュレーション処理を示すフローチャート図その２である。
【図２０】実施の形態２におけるエミュレーション処理を示すフローチャート図その３である。
【図２１】実施の形態２におけるエミュレーション処理を示すフローチャート図その４である。
【図２２】実施の形態２におけるエミュレーション処理を示すフローチャート図その５である。
【図２３】実施の形態２におけるエミュレーション処理を示すフローチャート図その６である。
【図２４】実施の形態２におけるエミュレーション処理を示すフローチャート図その７である。
【図２５】実施の形態２におけるエミュレーション処理を示すフローチャート図その８である。
【図２６】実施の形態２におけるエミュレーション処理を示すフローチャート図その９である。
【図２７】実施の形態２におけるエミュレーション処理を示すフローチャート図その１０である。
【図２８】実施の形態２におけるエミュレーション処理を示すフローチャート図その１１である。
【図２９】実施の形態２におけるエミュレーション処理を示すフローチャート図その１２である。
【図３０】実施の形態２におけるエミュレーション処理を示すフローチャート図その１３である。
【図３１】実施の形態２におけるエミュレーション処理を示すフローチャート図その１４である。
【図３２】実施の形態２におけるエミュレーション処理を示すフローチャート図その１５である。
【図３３】実施の形態２におけるエミュレーション装置の動作例を示す模式図その１である。
【図３４】実施の形態２におけるエミュレーション装置の動作例を示す模式図その２である。
【図３５】実施の形態２におけるエミュレーション装置の動作例を示す模式図その３である。
【図３６】実施の形態２におけるエミュレーション装置の動作例を示す模式図その４である。
【図３７】実施の形態２におけるエミュレーション装置の動作例を示す模式図その５である。
【図３８】実施の形態２におけるエミュレーション装置の動作例を示す模式図その６である。
【図３９】実施の形態２におけるエミュレーション装置の動作例を示す模式図その７である。
【図４０】実施の形態２におけるエミュレーション装置の動作例を示す模式図その８である。
【図４１】実施の形態２におけるエミュレーション装置の動作例を示す模式図その９である。
【図４２】実施の形態２におけるエミュレーション装置の動作例を示す模式図その１０である。
【図４３】実施の形態２におけるエミュレーション装置の動作例を示す模式図その１１である。
【図４４】実施の形態２におけるエミュレーション装置の動作例を示す模式図その１２である。
【図４５】実施の形態２におけるエミュレーション装置の動作例を示す模式図その１３である。
【図４６】実施の形態３におけるエミュレーション装置の構成を示すブロック図である。
【図４７】実施の形態３におけるエミュレーション処理を示すフローチャート図その１である。
【図４８】実施の形態３におけるエミュレーション処理を示すフローチャート図その２である。
【図４９】実施の形態３におけるエミュレーション処理を示すフローチャート図その３である。
【図５０】実施の形態３におけるエミュレーション装置の動作例を示す模式図その１である。
【図５１】実施の形態３におけるエミュレーション装置の動作例を示す模式図その２である。
【符号の説明】
１００　エミュレーション装置
１０１　第２種命令列保持部
１０２　第１種命令列保持部
１０３　変換ルールセット保持部
１０４　分岐先アドレス対応表保持部
１０５　保持先アドレス対応表保持部
１１１　第２種命令取り込みアドレス保持部
１１２　第１種命令書き込みアドレス保持部
１１３　第１種命令取り込みアドレス保持部
１１４　第１種命令終端アドレス保持部
１２１　第２種命令変換部
１２２　代替命令書込部
１２３　第１種命令実行部
１２４　代替命令書換部
２００　エミュレーション装置
２０３　変換ルールセット保持部
２０５　保持先アドレス対応表保持部
２１５　第１種命令状態フラグ保持部
２１６　第２種命令状態フラグ保持部
２２１　第２種命令変換部
２２２　代替命令書込部
２２３　第１種命令実行部
２２４　代替命令書換部
３００　エミュレーション装置
３２１　第２種命令変換部
【図１】
2004038410.tif 000003
【図２】
2004038410.tif 000004
【図３】
2004038410.tif 000005
【図４】
2004038410.tif 000006
【図５】
2004038410.tif 000007
【図６】
2004038410.tif 000008
【図７】
2004038410.tif 000009
【図８】
2004038410.tif 000010
【図９】
2004038410.tif 000011
【図１０】
2004038410.tif 000012
【図１１】
2004038410.tif 000013
【図１２】
2004038410.tif 000014
【図１３】
2004038410.tif 000015
【図１４】
2004038410.tif 000016
【図１５】
2004038410.tif 000017
【図１６】
2004038410.tif 000018
【図１７】
2004038410.tif 000019
【図１８】
2004038410.tif 000020
【図１９】
2004038410.tif 000021
【図２０】
2004038410.tif 000022
【図２１】
2004038410.tif 000023
【図２２】
2004038410.tif 000024
【図２３】
2004038410.tif 000025
【図２４】
2004038410.tif 000026
【図２５】
2004038410.tif 000027
【図２６】
2004038410.tif 000028
【図２７】
2004038410.tif 000029
【図２８】
2004038410.tif 000030
【図２９】
2004038410.tif 000031
【図３０】
2004038410.tif 000032
【図３１】
2004038410.tif 000033
【図３２】
2004038410.tif 000034
【図３３】
2004038410.tif 000035
【図３４】
2004038410.tif 000036
【図３５】
2004038410.tif 000037
【図３６】
2004038410.tif 000038
【図３７】
2004038410.tif 000039
【図３８】
2004038410.tif 000040
【図３９】
2004038410.tif 000041
【図４０】
2004038410.tif 000042
【図４１】
2004038410.tif 000043
【図４２】
2004038410.tif 000044
【図４３】
2004038410.tif 000045
【図４４】
2004038410.tif 000046
【図４５】
2004038410.tif 000047
【図４６】
2004038410.tif 000048
【図４７】
2004038410.tif 000049
【図４８】
2004038410.tif 000050
【図４９】
2004038410.tif 000051
【図５０】
2004038410.tif 000052
【図５１】
2004038410.tif 000053