JPH0745787Y2 - 逆アセンブル処理装置 - Google Patents
逆アセンブル処理装置Info
- Publication number
- JPH0745787Y2 JPH0745787Y2 JP951888U JP951888U JPH0745787Y2 JP H0745787 Y2 JPH0745787 Y2 JP H0745787Y2 JP 951888 U JP951888 U JP 951888U JP 951888 U JP951888 U JP 951888U JP H0745787 Y2 JPH0745787 Y2 JP H0745787Y2
- Authority
- JP
- Japan
- Prior art keywords
- code
- program
- instruction
- attribute data
- mnemonic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【考案の詳細な説明】 (産業上の利用分野) 本考案は機械語コードで表現されているプログラムをニ
ーモニックコードで表現されるプログラムに逆変換する
逆アセンブル処理装置に関し、さらに詳しくは内部状態
に応じて処理内容が決定されるマイクロプロセッサの逆
アセンブル処理装置に関する。
ーモニックコードで表現されるプログラムに逆変換する
逆アセンブル処理装置に関し、さらに詳しくは内部状態
に応じて処理内容が決定されるマイクロプロセッサの逆
アセンブル処理装置に関する。
(従来の技術) ニーモニックコードで記述されたプログラムはアセンブ
ル処理によって16進コードによる機械語プログラムに変
換される。逆に、機械語プログラムは逆アセンブル処理
によってニーモニックコードで表現されたプログラムに
逆変換される。
ル処理によって16進コードによる機械語プログラムに変
換される。逆に、機械語プログラムは逆アセンブル処理
によってニーモニックコードで表現されたプログラムに
逆変換される。
この場合、従来の逆アセンブル処理は予め16進コードの
命令とニーモニックコードの命令とを対応させておい
て、機械語プログラムの命令を対応するニーモニックコ
ードの命令に逆変換するものであった。
命令とニーモニックコードの命令とを対応させておい
て、機械語プログラムの命令を対応するニーモニックコ
ードの命令に逆変換するものであった。
例えば、8ビットマイクロプロセッサ8051の場合、16進
コード“00H"はニーモニックコード“NOP"に、16進コー
ド“02H"はニーモニックコード“LJMP ADR"に、16進コ
ード“04H"はニーモニックコード“INCA"にそれぞれ対
応している。
コード“00H"はニーモニックコード“NOP"に、16進コー
ド“02H"はニーモニックコード“LJMP ADR"に、16進コ
ード“04H"はニーモニックコード“INCA"にそれぞれ対
応している。
(考案が解決しようとする課題) このように、従来のアセンブル処理方法は16進コードと
ニーモニックコードとが1対1に対応しているものにつ
いては有効であった。
ニーモニックコードとが1対1に対応しているものにつ
いては有効であった。
しかし、機械語コードとニーモニックコードとを1対1
に対応させない場合がある。例えば、バイト単位の処理
をするためのインクリメント命令“INCBAH"とワード単
位の処理をするためのインクリメント命令“INCW AX"を
同じインクリメント命令として、16進の機械語コード
“04H"とするものである。これは1つの機械語コードを
より有効に活用するために行なわれるものである。この
ような対応関係のアセンブル処理は、プログラムを実行
するマイクロプロセッサの内部状態により、実行処理内
容が決定される場合に用いられるものである。
に対応させない場合がある。例えば、バイト単位の処理
をするためのインクリメント命令“INCBAH"とワード単
位の処理をするためのインクリメント命令“INCW AX"を
同じインクリメント命令として、16進の機械語コード
“04H"とするものである。これは1つの機械語コードを
より有効に活用するために行なわれるものである。この
ような対応関係のアセンブル処理は、プログラムを実行
するマイクロプロセッサの内部状態により、実行処理内
容が決定される場合に用いられるものである。
つまり、プログラムステータスワード(以下、PSWとい
う)のうち、ワード単位の処理であるかバイト単位の処
理であるかを示すワードバイトフラグ(以下、WBフラグ
という)により処理単位が決定される場合に用いられる
ものであるが、従来の逆アセンブル処理方法では、機械
語コードとニーモニックコードを1対1に対応させてい
るので、上記の機械語コード“04H"がニーモニックコー
ドの“INCB AH"と“INCW AX"のどちらに対応するのか判
断することができないため、従来の逆アセンブル処理装
置では対応することができないという問題点があった。
う)のうち、ワード単位の処理であるかバイト単位の処
理であるかを示すワードバイトフラグ(以下、WBフラグ
という)により処理単位が決定される場合に用いられる
ものであるが、従来の逆アセンブル処理方法では、機械
語コードとニーモニックコードを1対1に対応させてい
るので、上記の機械語コード“04H"がニーモニックコー
ドの“INCB AH"と“INCW AX"のどちらに対応するのか判
断することができないため、従来の逆アセンブル処理装
置では対応することができないという問題点があった。
また、上記のような対応関係のアセンブル処理が実行さ
れた機械語コードを、誤って、従来の逆アセンブル処理
装置を適用してしまうと、WBフラグの内容に応じてワー
ド単位の処理とバイト単位の処理とでイミディエイト値
等の参照バイト数が変わってくるため、参照バイト数を
取り違えた命令以降の逆アセンブルは全く意味をなさな
くなってしまうという問題点があった。
れた機械語コードを、誤って、従来の逆アセンブル処理
装置を適用してしまうと、WBフラグの内容に応じてワー
ド単位の処理とバイト単位の処理とでイミディエイト値
等の参照バイト数が変わってくるため、参照バイト数を
取り違えた命令以降の逆アセンブルは全く意味をなさな
くなってしまうという問題点があった。
本考案は上記問題点を解決するためになされたもので、
マイクロプロセッサの内部状態により処理内容が決定さ
れるタイプのマイクロプロセッサであっても、逆アセン
ブル処理ができる逆アセンブル処理装置を提供すること
を目的とする。
マイクロプロセッサの内部状態により処理内容が決定さ
れるタイプのマイクロプロセッサであっても、逆アセン
ブル処理ができる逆アセンブル処理装置を提供すること
を目的とする。
(課題を解決するための手段) 本考案に係る逆アセンブル処理装置は、機械語コードで
表現されているプログラムを記憶しているバイナリコー
ドメモリと、プログラムを構成する各命令に対応するニ
ーモニックコード表現の命令を記憶しているニーモニッ
クコードメモリと、プログラムを実行するマイクロプロ
セッサの内部状態を示すアトリビュートデータを記憶し
ているアトリビュートデータメモリと、プログラムの各
命令をニーモニックコード表現の命令に対比させるとと
もに、アトリビュートデータに応じて、プログラムをニ
ーモニックコードで表現されるプログラムに逆変換する
逆変換手段とを備えている。
表現されているプログラムを記憶しているバイナリコー
ドメモリと、プログラムを構成する各命令に対応するニ
ーモニックコード表現の命令を記憶しているニーモニッ
クコードメモリと、プログラムを実行するマイクロプロ
セッサの内部状態を示すアトリビュートデータを記憶し
ているアトリビュートデータメモリと、プログラムの各
命令をニーモニックコード表現の命令に対比させるとと
もに、アトリビュートデータに応じて、プログラムをニ
ーモニックコードで表現されるプログラムに逆変換する
逆変換手段とを備えている。
(作用) 上記構成の逆アセンブル処理装置は、逆変換手段がバイ
ナリコードメモリに記憶されている機械語コードで表現
されているプログラムの各命令を、ニーモニックコード
メモリに記憶されているニーモニックコード表現の命令
に対比させるとともに、アトリビュートデータメモリに
記憶されているアトリビュートデータに応じて、プログ
ラムをニーモニックコードで表現されるプログラムに逆
変換する。
ナリコードメモリに記憶されている機械語コードで表現
されているプログラムの各命令を、ニーモニックコード
メモリに記憶されているニーモニックコード表現の命令
に対比させるとともに、アトリビュートデータメモリに
記憶されているアトリビュートデータに応じて、プログ
ラムをニーモニックコードで表現されるプログラムに逆
変換する。
(実施例) 以下、本考案の一実施例を添付図面を参照して詳細に説
明する。
明する。
第1図は本考案の一実施例に係る逆アセンブル処理装置
を適用したプログラム開発支援システム用エミュレータ
の構成図である。第1図において、中央処理装置(以
下、CPUという)1はファームウェア用の読出専用メモ
リ(以下、ROMという)2に記憶されている逆アセンブ
ラ処理用プログラムを実行することにより逆アセンブル
処理を実行する。
を適用したプログラム開発支援システム用エミュレータ
の構成図である。第1図において、中央処理装置(以
下、CPUという)1はファームウェア用の読出専用メモ
リ(以下、ROMという)2に記憶されている逆アセンブ
ラ処理用プログラムを実行することにより逆アセンブル
処理を実行する。
本プログラム開発支援システム用エミュレータが対象と
するマイクロプロセッサ(以下、対象のマイクロプロセ
ッサという)はPSWのWBフラグにより処理内容が決定さ
れるものである。例えば、WBフラグが“1"のときは、対
象のマイクロプロセッサはバイト単位の処理を行なう。
従って、16進コードが“10H"であれば、この16進コード
“10H"に続く次の1バイトをイミディエート値として、
“MOVB AH,♯data"という命令を実行する。この命令は
“♯data"を16ビットのAXレジスタの上位8ビットに転
送する命令である。又、WBフラグが“0"のときは、CPU1
はワード単位の処理を行なう。従って、16進コードが
“10H"であれば、この16進コード“10H"に続く次の2バ
イトをイミディエイト値として、“MOVW AX,data"命令
を実行する。この命令は“data"をAXレジスタに転送す
る命令である。
するマイクロプロセッサ(以下、対象のマイクロプロセ
ッサという)はPSWのWBフラグにより処理内容が決定さ
れるものである。例えば、WBフラグが“1"のときは、対
象のマイクロプロセッサはバイト単位の処理を行なう。
従って、16進コードが“10H"であれば、この16進コード
“10H"に続く次の1バイトをイミディエート値として、
“MOVB AH,♯data"という命令を実行する。この命令は
“♯data"を16ビットのAXレジスタの上位8ビットに転
送する命令である。又、WBフラグが“0"のときは、CPU1
はワード単位の処理を行なう。従って、16進コードが
“10H"であれば、この16進コード“10H"に続く次の2バ
イトをイミディエイト値として、“MOVW AX,data"命令
を実行する。この命令は“data"をAXレジスタに転送す
る命令である。
16進コード用の読出書込メモリ(以下、RAMという)3
はCPU1が逆アセンブルする16進コードのプログラムを記
憶している。第2図は16進コード用のRAM3の記憶内容を
示す図である。16進コード用のRAM3は0番地から順に
“10H"、“5AH"、“10H"、“5AH"、“A5H"、…というよ
うに、16進コードの命令とその命令に対応する16進表現
のオペランドが記憶されている。
はCPU1が逆アセンブルする16進コードのプログラムを記
憶している。第2図は16進コード用のRAM3の記憶内容を
示す図である。16進コード用のRAM3は0番地から順に
“10H"、“5AH"、“10H"、“5AH"、“A5H"、…というよ
うに、16進コードの命令とその命令に対応する16進表現
のオペランドが記憶されている。
アトリビュートデータ用のRAM4はCPU1の扱うデータがワ
ード単位かバイト単位かを示すアトリビュートデータ
を、アセンブル処理に対応させて予め記憶させておく。
第3図はアトリビュートデータ用のRAM4の記憶内容を示
す図である。アトリビュートデータ用のRAM4は0番地か
ら順に“1"、“1"、“0"、“0"、“0、…というように
16進コード用のRAM3に対応するアトリビュートデータを
記憶している。アトリビュートデータ“0"がワード単位
の処理、アトリビュートデータ“1"がバイト単位の処理
である。
ード単位かバイト単位かを示すアトリビュートデータ
を、アセンブル処理に対応させて予め記憶させておく。
第3図はアトリビュートデータ用のRAM4の記憶内容を示
す図である。アトリビュートデータ用のRAM4は0番地か
ら順に“1"、“1"、“0"、“0"、“0、…というように
16進コード用のRAM3に対応するアトリビュートデータを
記憶している。アトリビュートデータ“0"がワード単位
の処理、アトリビュートデータ“1"がバイト単位の処理
である。
なお、16進コード用のRAM3及びアトリビュートデータ用
のRAM4はともに0番地から始まっているが、これはRAM
内部のアドレスであって、同じ番地が対応するものであ
ることを表わしている。
のRAM4はともに0番地から始まっているが、これはRAM
内部のアドレスであって、同じ番地が対応するものであ
ることを表わしている。
アドレスバス5及びデータバス6はCPU1がアクセスする
ファームウェア用のROM2、16進コード用のRAM2及びアト
リビュートデータ用のRAM4のアドレス及びデータを伝送
するものである。
ファームウェア用のROM2、16進コード用のRAM2及びアト
リビュートデータ用のRAM4のアドレス及びデータを伝送
するものである。
次に、第1図に示したエミュレータの動作、即ち16進コ
ード用のRAM3に記憶されている16進コードの命令を逆ア
センブルしてニーモニックコードを生成する逆アセンブ
ル動作について説明する。
ード用のRAM3に記憶されている16進コードの命令を逆ア
センブルしてニーモニックコードを生成する逆アセンブ
ル動作について説明する。
まず、16進コード用のRAM3から16進コードを読み込むた
めに、CPU1は16進コード用のRAM3をアクセスするアドレ
スを0番地にする。次いで、CPU1は16進コード用のRAM3
から16進コード“10H"を読み込む。この16進コード“10
H"はWBフラグの内容に従ってワード単位又はバイト単位
のいずれかの処理を行なう命令である。
めに、CPU1は16進コード用のRAM3をアクセスするアドレ
スを0番地にする。次いで、CPU1は16進コード用のRAM3
から16進コード“10H"を読み込む。この16進コード“10
H"はWBフラグの内容に従ってワード単位又はバイト単位
のいずれかの処理を行なう命令である。
このため、CPU1はアトリビュートデータ用のRAM4の0番
地からアトリビュートデータ“1"を読み込む。このアト
リビュートデータ“1"はバイト単位の処理を示すもので
ある。そこで、CPU1は16進コード“10H"がこの16進コー
ド“10H"に続く1バイトのデータをイミディエイト値と
する“MOVB"命令(バイト単位の転送命令)であると判
断する。
地からアトリビュートデータ“1"を読み込む。このアト
リビュートデータ“1"はバイト単位の処理を示すもので
ある。そこで、CPU1は16進コード“10H"がこの16進コー
ド“10H"に続く1バイトのデータをイミディエイト値と
する“MOVB"命令(バイト単位の転送命令)であると判
断する。
従って、16進コード用のRAM3をアクセスするアドレスを
1番地にして、1バイトの16進データ“5AH"を読み込ん
で、ニーモニックコードの命令“MOVB AH,♯5A"を生成
する。
1番地にして、1バイトの16進データ“5AH"を読み込ん
で、ニーモニックコードの命令“MOVB AH,♯5A"を生成
する。
さらに、次の16進コードを読み込むために、16進コード
用のRAM3をアクセスするアドレスを2番地にする。次い
で、CPU1は16進コード用のRAM3から16進コード“10H"を
読み込む。この16進コード“10H"は上述したようにWBフ
ラグの内容に従ってワード単位又はバイト単位のいずれ
かの処理を行なう命令である。
用のRAM3をアクセスするアドレスを2番地にする。次い
で、CPU1は16進コード用のRAM3から16進コード“10H"を
読み込む。この16進コード“10H"は上述したようにWBフ
ラグの内容に従ってワード単位又はバイト単位のいずれ
かの処理を行なう命令である。
このため、CPU1はアトリビュートデータ用のRAM4の2番
地からアトリビュートデータ“0"を読み込む。このアト
リビュートデータ“0"はワード単位の処理を示すもので
ある。そこで、CPU1は16進コード“10H"がこの16進コー
ド“10H"に続く2バイトのデータをイミディエイト値と
する。“MOVW"命令(ワード単位の転送命令)であると
判断する。
地からアトリビュートデータ“0"を読み込む。このアト
リビュートデータ“0"はワード単位の処理を示すもので
ある。そこで、CPU1は16進コード“10H"がこの16進コー
ド“10H"に続く2バイトのデータをイミディエイト値と
する。“MOVW"命令(ワード単位の転送命令)であると
判断する。
従って、CPU1は16進コード用のRAM3をアクセスするアド
レスを3番地にして、2バイトの16進データ“5AH"及び
“A5H"を読み込んで、ニーモニックコードの命令“MOVW
AX,♯5AA5"を生成する。
レスを3番地にして、2バイトの16進データ“5AH"及び
“A5H"を読み込んで、ニーモニックコードの命令“MOVW
AX,♯5AA5"を生成する。
さらに、次の16進コードを読み込むために、16進コード
用のRAM3をアクセスするアドレスを5番地にして、同様
にして逆アセンブル処理を続ける。
用のRAM3をアクセスするアドレスを5番地にして、同様
にして逆アセンブル処理を続ける。
(考案の効果) 以上説明したように本考案によれば、アトリビュートデ
ータ用のRAMにマイクロプロセッサの内部状態を示すア
トリビュートデータを記憶しておくことにより、同一の
16進コードでも実際の処理に即したニーモニックに逆ア
センブルができる逆アセンブル処理装置が得られる。
ータ用のRAMにマイクロプロセッサの内部状態を示すア
トリビュートデータを記憶しておくことにより、同一の
16進コードでも実際の処理に即したニーモニックに逆ア
センブルができる逆アセンブル処理装置が得られる。
又、実際の処理を考慮した逆アセンブル処理を行なうの
で、実行内容に応じてイミディエイト値等の参照バイト
数が変わるような場合においても、逆アセンブルすべき
範囲を誤ることがない。
で、実行内容に応じてイミディエイト値等の参照バイト
数が変わるような場合においても、逆アセンブルすべき
範囲を誤ることがない。
又、マイクロプロセッサのプログラム開発支援システム
に、アトリビュートデータを記憶しているアトリビュー
トデータ用のメモリを備えることにより、プログラムの
エミュレーション時におけるマイクロプロセッサの内部
状態の初期設定を自動的に行なえるという効果を奏す
る。
に、アトリビュートデータを記憶しているアトリビュー
トデータ用のメモリを備えることにより、プログラムの
エミュレーション時におけるマイクロプロセッサの内部
状態の初期設定を自動的に行なえるという効果を奏す
る。
さらに、エミュレーション時のマイクロプロセッサの内
部状態とアトリビュートデータとを比較することによ
り、プログラムの実行が正確に行われているか確認でき
る。
部状態とアトリビュートデータとを比較することによ
り、プログラムの実行が正確に行われているか確認でき
る。
第1図は本考案の一実施例に係る逆アセンブル処理装置
を適用したプログラム開発支援システム用エミュレータ
の構成図、第2図は第1図に示した16進コード用のRAM
の説明図、第3図は第1図に示したアトリビュートデー
タ用のRAMの説明図である。 1…CPU、2…ファームウェア用のROM、3…16進コード
用のRAM、4…アトリビュートデータ用のRAM、5…アド
レスバス、6…データバス。
を適用したプログラム開発支援システム用エミュレータ
の構成図、第2図は第1図に示した16進コード用のRAM
の説明図、第3図は第1図に示したアトリビュートデー
タ用のRAMの説明図である。 1…CPU、2…ファームウェア用のROM、3…16進コード
用のRAM、4…アトリビュートデータ用のRAM、5…アド
レスバス、6…データバス。
Claims (1)
- 【請求項1】機械語コードで表現されているプログラム
を記憶しているバイナリコードメモリと、 前記プログラムを構成する各命令に対応するニーモニッ
クコード表現の命令を記憶しているニーモニックコード
メモリと、 前記プログラムを実行するマイクロプロセッサの内部状
態を示すアトリビュートデータを記憶しているアトリビ
ュートデータメモリと、 前記プログラムの各命令を前記ニーモニックコード表現
の命令に対比させるとともに、前記アトリビュートデー
タに応じて、該プログラムをニーモニックコードで表現
されるプログラムに逆変換する逆変換手段と、 を備えたことを特徴とする逆アセンブル処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP951888U JPH0745787Y2 (ja) | 1988-01-29 | 1988-01-29 | 逆アセンブル処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP951888U JPH0745787Y2 (ja) | 1988-01-29 | 1988-01-29 | 逆アセンブル処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01116839U JPH01116839U (ja) | 1989-08-07 |
| JPH0745787Y2 true JPH0745787Y2 (ja) | 1995-10-18 |
Family
ID=31216326
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP951888U Expired - Lifetime JPH0745787Y2 (ja) | 1988-01-29 | 1988-01-29 | 逆アセンブル処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0745787Y2 (ja) |
-
1988
- 1988-01-29 JP JP951888U patent/JPH0745787Y2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01116839U (ja) | 1989-08-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5430862A (en) | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution | |
| EP0671685B1 (en) | Method and apparatus for detecting and executing cross-domain calls in a computer system | |
| US4763242A (en) | Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility | |
| US6401197B1 (en) | Microprocessor and multiprocessor system | |
| US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
| JPH07117897B2 (ja) | データ処理システムのプリフェッチ回路 | |
| US5021991A (en) | Coprocessor instruction format | |
| EP0525831B1 (en) | Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor. | |
| US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| JPS645330B2 (ja) | ||
| JPH0745787Y2 (ja) | 逆アセンブル処理装置 | |
| JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
| JP2591418B2 (ja) | Cpuシミュレータ | |
| JP2749105B2 (ja) | 並列計算機のブート方式 | |
| JP2637770B2 (ja) | マイクロコンピュータ | |
| JPH0836496A (ja) | マイクロコンピュータ | |
| US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| JPH0667896A (ja) | シングルチップマイクロコンピュータ | |
| JP2926941B2 (ja) | 命令デコード装置 | |
| JPS6341092B2 (ja) | ||
| JPH0259829A (ja) | マイクロコンピュータ | |
| Hojka | Increasing performance by microcoding | |
| JPS6010336B2 (ja) | アドレス比較方式 | |
| JPS6338729B2 (ja) | ||
| JPH03225551A (ja) | 入出力装置アクセス制御方式 |