JPH07105019A - 命令シミュレータ処理方式 - Google Patents
命令シミュレータ処理方式Info
- Publication number
- JPH07105019A JPH07105019A JP5251261A JP25126193A JPH07105019A JP H07105019 A JPH07105019 A JP H07105019A JP 5251261 A JP5251261 A JP 5251261A JP 25126193 A JP25126193 A JP 25126193A JP H07105019 A JPH07105019 A JP H07105019A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- instruction
- unit
- value
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 28
- 238000004088 simulation Methods 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】 (修正有)
【目的】スタークオーバーフロー時にも、行える命令シ
ミュレータ処理方式の提供。 【構成】シミュレータ101は、コンソール102の指
示情報の入力部106と、入力ファイル103のプログ
ラム情報のファイル入力部104と、プログラムメモリ
部108よりプログラム情報を読み出す命令入力部11
6と、スタックメモリ部110を含むデータメモリ部1
09と、レジスタメモリ部112と、命令解析部117
の命令解析結果による命令を実行する命令実行部118
と、スタックポインタ部115の値とスタック規定部1
22の値とを比較照合する比較部123と、比較部12
3の比較結果によりスタック操作先を切替える切替部1
24と、入力部106の指示により、ファイル入力部1
04、命令入力部116、命令解析部117、命令実行
部118およびスタック規定部122を制御する制御部
107と、制御部107による制御結果の出力部105
を備える。
ミュレータ処理方式の提供。 【構成】シミュレータ101は、コンソール102の指
示情報の入力部106と、入力ファイル103のプログ
ラム情報のファイル入力部104と、プログラムメモリ
部108よりプログラム情報を読み出す命令入力部11
6と、スタックメモリ部110を含むデータメモリ部1
09と、レジスタメモリ部112と、命令解析部117
の命令解析結果による命令を実行する命令実行部118
と、スタックポインタ部115の値とスタック規定部1
22の値とを比較照合する比較部123と、比較部12
3の比較結果によりスタック操作先を切替える切替部1
24と、入力部106の指示により、ファイル入力部1
04、命令入力部116、命令解析部117、命令実行
部118およびスタック規定部122を制御する制御部
107と、制御部107による制御結果の出力部105
を備える。
Description
【0001】
【産業上の利用分野】本発明は命令シミュレータ処理方
式に関し、特にマイクロコンピュータ用プログラムのシ
ミュレーション方法として用いられる命令シミュレータ
処理方式に関する。
式に関し、特にマイクロコンピュータ用プログラムのシ
ミュレーション方法として用いられる命令シミュレータ
処理方式に関する。
【0002】
【従来の技術】一般的に、どのようなプログラムにおい
ても、そのプログラムの命令シミュレーション中にはス
タック操作命令が実行されている。そして、そのスタッ
ク操作が幾重にも行われると、それに対応して、当該ス
タックは順次スタック領域に積まれてゆく。プログラマ
は、このスタック操作が最大幾重になるかを考慮して、
そのためのスタック領域を確保することが必要となる。
このスタック領域の直ぐ近くの領域までも、データ領域
として用いているプログラムの場合には、もしもスタッ
ク領域が正しく確保されずに不十分である場合には、当
該スタック領域を越えてデータ領域にまでもスタックが
積まれる状態となり、これにより、やがてはプログラム
が暴走する事態になる可能性がある。
ても、そのプログラムの命令シミュレーション中にはス
タック操作命令が実行されている。そして、そのスタッ
ク操作が幾重にも行われると、それに対応して、当該ス
タックは順次スタック領域に積まれてゆく。プログラマ
は、このスタック操作が最大幾重になるかを考慮して、
そのためのスタック領域を確保することが必要となる。
このスタック領域の直ぐ近くの領域までも、データ領域
として用いているプログラムの場合には、もしもスタッ
ク領域が正しく確保されずに不十分である場合には、当
該スタック領域を越えてデータ領域にまでもスタックが
積まれる状態となり、これにより、やがてはプログラム
が暴走する事態になる可能性がある。
【0003】従来の命令シミュレータ処理方式において
は、命令シミュレーション中にスタック・オーバーフロ
ーになったか否かをチェックするために、予めスタック
・アドレスの下限値がスタックの規定値として入力され
ており、命令シミュレーション中にスタック操作命令が
実行される度に、スタック・ポインタがその規定値を下
回るか否かがチェックされて、当該規定値を下回ってい
る場合には警告メッセージが出力されるのが通例であ
る。しかしながら、警告メッセージを出すことはできる
ものの、一旦プログラムが暴走状態になると、それ以降
においては、正しくシミュレーションを継続して実行す
ることは不可能な状態となる。
は、命令シミュレーション中にスタック・オーバーフロ
ーになったか否かをチェックするために、予めスタック
・アドレスの下限値がスタックの規定値として入力され
ており、命令シミュレーション中にスタック操作命令が
実行される度に、スタック・ポインタがその規定値を下
回るか否かがチェックされて、当該規定値を下回ってい
る場合には警告メッセージが出力されるのが通例であ
る。しかしながら、警告メッセージを出すことはできる
ものの、一旦プログラムが暴走状態になると、それ以降
においては、正しくシミュレーションを継続して実行す
ることは不可能な状態となる。
【0004】なお、「仮想記憶管理システム及び計算機
システム(特開平3−113550号公報)」において
は、スタック・オーバーフローによるエラー発生の回避
方法として、伸縮可能な仮想空間が提案されているが、
当該提案はOSなどのセルフ系のコンピュータのスタッ
ク処理に関する内容であり、従って、プログラム・メモ
リおよびスタック・メモリを含むデータ・メモリおよび
レジスタ・メモリが全て同じ一つのアドレス空間上の実
アドレスにマッピングされたマイクロコンピュータのプ
ログラムをシミュレーションによりデバッグする場合に
は、全てのメモリに対して、プログラム通りのアドレス
に対応するアドレス空間上においてデバッグする必要が
あり、シミュレーション上において各メモリを仮想空間
に割り当ててデバッグすることが許されないために、上
記の「仮想記憶管理システム及び計算機システム(特開
平3−113550号)」による提案は、この命令シミ
ュレータ処理方式には適用することは不可能である。
システム(特開平3−113550号公報)」において
は、スタック・オーバーフローによるエラー発生の回避
方法として、伸縮可能な仮想空間が提案されているが、
当該提案はOSなどのセルフ系のコンピュータのスタッ
ク処理に関する内容であり、従って、プログラム・メモ
リおよびスタック・メモリを含むデータ・メモリおよび
レジスタ・メモリが全て同じ一つのアドレス空間上の実
アドレスにマッピングされたマイクロコンピュータのプ
ログラムをシミュレーションによりデバッグする場合に
は、全てのメモリに対して、プログラム通りのアドレス
に対応するアドレス空間上においてデバッグする必要が
あり、シミュレーション上において各メモリを仮想空間
に割り当ててデバッグすることが許されないために、上
記の「仮想記憶管理システム及び計算機システム(特開
平3−113550号)」による提案は、この命令シミ
ュレータ処理方式には適用することは不可能である。
【0005】
【発明が解決しようとする課題】上述した従来の命令シ
ミュレータ処理方式においては、スタック・オーバーフ
ローになったか否かをチェックして、スタック・ポイン
タが所定の規定値を下回っている場合には、警告メッセ
ージを出すことはできるものの、一旦プログラムが暴走
すると、それ以降においては、正しくシミュレーション
を継続して実行することは不可能である。このために、
プログラムは、スタック・サイズの変更またはデータ領
域の割付け変更などを含むプログラムの再設計、プログ
ラムの修正およびアセンブラ・コンパイラ等によるオブ
ジェクト・ファイルの再作成を行って、再度シミュレー
ションを行うこととなり、このために、多くの時間が余
分に必要になるという欠点がある。
ミュレータ処理方式においては、スタック・オーバーフ
ローになったか否かをチェックして、スタック・ポイン
タが所定の規定値を下回っている場合には、警告メッセ
ージを出すことはできるものの、一旦プログラムが暴走
すると、それ以降においては、正しくシミュレーション
を継続して実行することは不可能である。このために、
プログラムは、スタック・サイズの変更またはデータ領
域の割付け変更などを含むプログラムの再設計、プログ
ラムの修正およびアセンブラ・コンパイラ等によるオブ
ジェクト・ファイルの再作成を行って、再度シミュレー
ションを行うこととなり、このために、多くの時間が余
分に必要になるという欠点がある。
【0006】
【課題を解決するための手段】本発明の命令シミュレー
タ処理方式は、命令解析手段、命令実行手段、プログラ
ムメモリ手段、データメモリ手段およびレジスタメモリ
手段を有するマイクロコンピュータの命令シミュレータ
処理方式において、所定のコンソールよりの指示情報を
入力する入力手段と、所定の入力ファイルよりプログラ
ム情報を入力して、前記プログラムメモリ手段に収納す
るファイル入力手段と、前記入力手段を介して前記コン
ソールより入力される指示情報を介して、所定のスタッ
ク規定値が設定されるスタック規定手段と、前記プログ
ラムメモリ手段よりプログラム情報を読み出して、前記
命令解析手段に出力する命令入力手段と、前記命令解析
手段による命令解析結果により、前記命令実行手段を介
して前記レジスタメモリ手段に設定された値と、前記ス
タック規定手段に設定されている値とを比較する比較手
段と、前記比較手段による比較結果を参照して、前記レ
ジスタメモリ手段に設定された値をそれぞれ識別して出
力する切替手段と、前記切替手段より識別されて出力さ
れる値をそれぞれ区分して収納するスタックメモリ手段
ならびに予備スタックメモリ手段と、をシミュレータと
して少なくとも備えて構成され、スタックが前記スタッ
ク規定値をオーバーしたことが検出される場合には、前
記予備スタックメモリ手段が、データメモリ中の前記ス
タックメモリ手段の延長として機能し、シミュレータの
実行を阻害することなく、正常にシミュレーション処理
を行うことを特徴としている。
タ処理方式は、命令解析手段、命令実行手段、プログラ
ムメモリ手段、データメモリ手段およびレジスタメモリ
手段を有するマイクロコンピュータの命令シミュレータ
処理方式において、所定のコンソールよりの指示情報を
入力する入力手段と、所定の入力ファイルよりプログラ
ム情報を入力して、前記プログラムメモリ手段に収納す
るファイル入力手段と、前記入力手段を介して前記コン
ソールより入力される指示情報を介して、所定のスタッ
ク規定値が設定されるスタック規定手段と、前記プログ
ラムメモリ手段よりプログラム情報を読み出して、前記
命令解析手段に出力する命令入力手段と、前記命令解析
手段による命令解析結果により、前記命令実行手段を介
して前記レジスタメモリ手段に設定された値と、前記ス
タック規定手段に設定されている値とを比較する比較手
段と、前記比較手段による比較結果を参照して、前記レ
ジスタメモリ手段に設定された値をそれぞれ識別して出
力する切替手段と、前記切替手段より識別されて出力さ
れる値をそれぞれ区分して収納するスタックメモリ手段
ならびに予備スタックメモリ手段と、をシミュレータと
して少なくとも備えて構成され、スタックが前記スタッ
ク規定値をオーバーしたことが検出される場合には、前
記予備スタックメモリ手段が、データメモリ中の前記ス
タックメモリ手段の延長として機能し、シミュレータの
実行を阻害することなく、正常にシミュレーション処理
を行うことを特徴としている。
【0007】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0008】図1は本発明の一実施例のシステム構成図
である。図1に示されるように、本実施例は、シミュレ
ータ101と、コンソール102と、入力ファイル10
3とを備えて構成されており、上記の主たる構成要素の
シミュレータ101は、コンソール102より起動指示
情報を入力する入力部106と、入力ファイル103よ
りプログラム情報を入力するファイル入力部104と、
入力されるプログラム情報を保持するプログラムメモリ
部108と、プログラムメモリ部108よりプログラム
情報を読み出す命令入力部116と、読み出されたプロ
グラム情報を受けて命令解析する命令解析部117と、
スタックメモリ部110を含むデータメモリ部109
と、BCレジスタ部113、HLレジスタ部114およ
びスタックポインタ部115を含むレジスタメモリ部1
12と、データメモリ部109を操作するデータ操作命
令実行部119、スタックメモリ部110を操作するス
タック操作命令実行部120およびレジスタメモリ部1
12を操作するレジスタ操作命令部121を含み、前記
命令解析部117の命令解析結果による命令を実行する
命令実行部118と、スタック規定部122と、スタッ
クポインタ部115の値とスタック規定部122の値と
を比較照合する比較部123と、比較部123の比較結
果によりスタック操作先を切替える切替部124と、予
備スタックメモリ部111と、入力部106の指示によ
り、ファイル入力部104、命令入力部116、命令解
析部117、命令実行部118およびスタック規定部1
22を制御する制御部107と、当該制御部107によ
る制御結果をコンソール102に出力する出力部105
とを備えて構成される。
である。図1に示されるように、本実施例は、シミュレ
ータ101と、コンソール102と、入力ファイル10
3とを備えて構成されており、上記の主たる構成要素の
シミュレータ101は、コンソール102より起動指示
情報を入力する入力部106と、入力ファイル103よ
りプログラム情報を入力するファイル入力部104と、
入力されるプログラム情報を保持するプログラムメモリ
部108と、プログラムメモリ部108よりプログラム
情報を読み出す命令入力部116と、読み出されたプロ
グラム情報を受けて命令解析する命令解析部117と、
スタックメモリ部110を含むデータメモリ部109
と、BCレジスタ部113、HLレジスタ部114およ
びスタックポインタ部115を含むレジスタメモリ部1
12と、データメモリ部109を操作するデータ操作命
令実行部119、スタックメモリ部110を操作するス
タック操作命令実行部120およびレジスタメモリ部1
12を操作するレジスタ操作命令部121を含み、前記
命令解析部117の命令解析結果による命令を実行する
命令実行部118と、スタック規定部122と、スタッ
クポインタ部115の値とスタック規定部122の値と
を比較照合する比較部123と、比較部123の比較結
果によりスタック操作先を切替える切替部124と、予
備スタックメモリ部111と、入力部106の指示によ
り、ファイル入力部104、命令入力部116、命令解
析部117、命令実行部118およびスタック規定部1
22を制御する制御部107と、当該制御部107によ
る制御結果をコンソール102に出力する出力部105
とを備えて構成される。
【0009】図2は、利用者により作成された入力ファ
イル103のsampleアセンブラソースイメージの
プログラム情報の一部であり、その情報内容は下記のと
うりである。
イル103のsampleアセンブラソースイメージの
プログラム情報の一部であり、その情報内容は下記のと
うりである。
【0010】201:スタックポインタ(SP)の値を
F000Hにする。
F000Hにする。
【0011】202:BCレジスタの値を1234Hに
する。
する。
【0012】203:HLレジスタの値を5678Hに
する。
する。
【0013】204:BCレジスタの内容をスタックに
積む。
積む。
【0014】205:HLレジスタの内容をスタックに
積む。
積む。
【0015】206:スタックからラッチしてBCレジ
スタに入力する。
スタに入力する。
【0016】207:スタックからラッチしてHLレジ
スタに入力する。
スタに入力する。
【0017】図2において、このプログラムが、図2に
示される201の命令より207の命令まで正しくシミ
ュレートされると、一つのPUSH命令により二つのス
タックが積まれるものとすると、スタックポインタ部1
15の値は一時的に最大EFFCHの値まで小さくなっ
て、再びF000Hの値となり、BCレジスタ部113
には5678Hの値が入力され、またHLレジスタ部1
14には1234Hの値が入力されることになる。
示される201の命令より207の命令まで正しくシミ
ュレートされると、一つのPUSH命令により二つのス
タックが積まれるものとすると、スタックポインタ部1
15の値は一時的に最大EFFCHの値まで小さくなっ
て、再びF000Hの値となり、BCレジスタ部113
には5678Hの値が入力され、またHLレジスタ部1
14には1234Hの値が入力されることになる。
【0018】図3は、利用者によるコソール102に対
する操作手順情報を示しており、その情報内容は下記の
とうりである。
する操作手順情報を示しており、その情報内容は下記の
とうりである。
【0019】301:図2のプログラムをシミュレータ
に読み込む指示を示す。
に読み込む指示を示す。
【0020】302:スタックアドレスの下限値として
のスタック規定値を、EFFEHにする指示を示す。
のスタック規定値を、EFFEHにする指示を示す。
【0021】303:プログラム実行指示を示す。
【0022】利用者により、まずコンソール102に対
してプログラムロード指示入力が行われる(301)。
入力部106および制御部107による制御作用によ
り、プログラム情報(図2参照)が格納されている入力
ファイル103より、ファイル入力部104を介して当
該プログラム情報がプログラムメモリ部108に入力さ
れる。次いで、コンソール102に対して、スタックア
ドレスの下限値としてスタック規定値EFFEHの設定
指示が行われ(302)、入力部106により制御部1
07に対し実行が指示される。そして、次に、コンソー
ル102に対してプログラム実行の指示が行われる(3
03)。
してプログラムロード指示入力が行われる(301)。
入力部106および制御部107による制御作用によ
り、プログラム情報(図2参照)が格納されている入力
ファイル103より、ファイル入力部104を介して当
該プログラム情報がプログラムメモリ部108に入力さ
れる。次いで、コンソール102に対して、スタックア
ドレスの下限値としてスタック規定値EFFEHの設定
指示が行われ(302)、入力部106により制御部1
07に対し実行が指示される。そして、次に、コンソー
ル102に対してプログラム実行の指示が行われる(3
03)。
【0023】これを受けて、入力部106により制御部
107に対してプログラムの実行が指示され、制御部1
07による制御作用により、プログラム実行の先頭の一
つ目の命令201(図2参照)がプログラムメモリ部1
08より読み出されて、命令入力部116を介して命令
解析部117に入力される。命令解析部117において
は、当該命令内容が解析され、その解析結果は、レジス
タ操作命令実行部121を介してレジスタメモリ部11
2に含まれるスタックポインタ部115に入力されて、
当該スタックポインタ部115にF000Hが設定され
る。続いて、制御部107による制御作用により、命令
202(図2参照)がプログラムメモリ部108より読
み出されて、命令入力部116を介して命令解析部11
7に入力される。命令解析部117においては、当該命
令内容が解析され、その解析結果は、レジスタ操作命令
実行部121を介してレジスタメモリ部112に含まれ
るBCレジスタ部113に入力されて、当該BCレジス
タ部113に1234Hが設定される。
107に対してプログラムの実行が指示され、制御部1
07による制御作用により、プログラム実行の先頭の一
つ目の命令201(図2参照)がプログラムメモリ部1
08より読み出されて、命令入力部116を介して命令
解析部117に入力される。命令解析部117において
は、当該命令内容が解析され、その解析結果は、レジス
タ操作命令実行部121を介してレジスタメモリ部11
2に含まれるスタックポインタ部115に入力されて、
当該スタックポインタ部115にF000Hが設定され
る。続いて、制御部107による制御作用により、命令
202(図2参照)がプログラムメモリ部108より読
み出されて、命令入力部116を介して命令解析部11
7に入力される。命令解析部117においては、当該命
令内容が解析され、その解析結果は、レジスタ操作命令
実行部121を介してレジスタメモリ部112に含まれ
るBCレジスタ部113に入力されて、当該BCレジス
タ部113に1234Hが設定される。
【0024】同様にして、制御部107による制御作用
により、命令203(図2参照)がプログラムメモリ部
108より読み出されて、命令入力部116を介して命
令解析部117に入力される。命令解析部117におい
ては、当該命令内容が解析され、その解析結果は、レジ
スタ操作命令実行部121を介してレジスタメモリ部1
12に含まれるHLレジスタ部114に入力されて、当
該HLレジスタ部114に5678Hが設定される。次
いで、制御部107による制御作用により、命令204
(図2参照)がプログラムメモリ部108より読み出さ
れて、命令入力部116を介して命令解析部117に入
力される。命令解析部117においては、当該命令内容
が解析され、その解析結果は、レジスタ操作命令実行部
121を介して、レジスタメモリ部112に含まれるB
Cレジスタ部113に設定された値1234Hが読み出
されて、スタック操作命令実行部120に入力される。
スタック操作命令実行部120においては、まず、当該
値の上位値12Hが分離されて切替部124に送られ
る。この際、スタックポインタ部115におけるF00
0Hの値は、スタック規定部122の値EFFEHより
も大きいので、切替部124を介して前記12Hの値は
スタックメモリ部110にスタックとして積まれる。ま
た、スタックポインタ部115に設定された値は、デク
リメントされてEFFFHとなる。次いで、更にスタッ
ク操作命令実行部120においては、当該値の下位値3
4Hが分離されて切替部124に送られるが、スタック
ポインタ部115における前記EFFFHの値は、スタ
ック規定部122の値EFFEHよりも大きいので、切
替部124を介して前記34Hの値はスタックメモリ部
110にスタックとして積まれる。また、スタックポイ
ンタ部115に設定された値は、デクリメントされてE
FFEHとなる。
により、命令203(図2参照)がプログラムメモリ部
108より読み出されて、命令入力部116を介して命
令解析部117に入力される。命令解析部117におい
ては、当該命令内容が解析され、その解析結果は、レジ
スタ操作命令実行部121を介してレジスタメモリ部1
12に含まれるHLレジスタ部114に入力されて、当
該HLレジスタ部114に5678Hが設定される。次
いで、制御部107による制御作用により、命令204
(図2参照)がプログラムメモリ部108より読み出さ
れて、命令入力部116を介して命令解析部117に入
力される。命令解析部117においては、当該命令内容
が解析され、その解析結果は、レジスタ操作命令実行部
121を介して、レジスタメモリ部112に含まれるB
Cレジスタ部113に設定された値1234Hが読み出
されて、スタック操作命令実行部120に入力される。
スタック操作命令実行部120においては、まず、当該
値の上位値12Hが分離されて切替部124に送られ
る。この際、スタックポインタ部115におけるF00
0Hの値は、スタック規定部122の値EFFEHより
も大きいので、切替部124を介して前記12Hの値は
スタックメモリ部110にスタックとして積まれる。ま
た、スタックポインタ部115に設定された値は、デク
リメントされてEFFFHとなる。次いで、更にスタッ
ク操作命令実行部120においては、当該値の下位値3
4Hが分離されて切替部124に送られるが、スタック
ポインタ部115における前記EFFFHの値は、スタ
ック規定部122の値EFFEHよりも大きいので、切
替部124を介して前記34Hの値はスタックメモリ部
110にスタックとして積まれる。また、スタックポイ
ンタ部115に設定された値は、デクリメントされてE
FFEHとなる。
【0025】続いて、制御部107による制御作用によ
り、命令205(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、その解析結果は、レジス
タ操作命令実行部121を介してレジスタメモリ部11
2に含まれるHLレジスタ部114に入力され、当該H
Lレジスタ部114の値5678Hが読み出されて、ス
タック操作命令実行部120に送られる。スタック操作
命令実行部120においては、まず、当該値の上位値5
6Hが分離されて切替部124に送られる。この際、ス
タックポインタ部115におけるEFFFHの値は、ス
タック規定部122の値EFFEHよりも大きくないの
で、切替部124を介して前記56Hの値は予備スタッ
クメモリ部111にスタックとして積まれる。また、ス
タックポインタ部115の値は、デクリメントされてE
FFDHとなる。次いで、更にスタック操作命令実行部
120においては、当該値の下位値78Hが切替部12
4に送られるが、スタックポインタ部115における前
記EFFDHの値は、スタック規定部122の値EFF
EHよりも大きくないので、切替部124を介して前記
78Hの値は予備スタックメモリ部111にスタックと
して積まれる。また、スタックポインタ部115の値
は、デクリメントされてEFFCHとなる。
り、命令205(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、その解析結果は、レジス
タ操作命令実行部121を介してレジスタメモリ部11
2に含まれるHLレジスタ部114に入力され、当該H
Lレジスタ部114の値5678Hが読み出されて、ス
タック操作命令実行部120に送られる。スタック操作
命令実行部120においては、まず、当該値の上位値5
6Hが分離されて切替部124に送られる。この際、ス
タックポインタ部115におけるEFFFHの値は、ス
タック規定部122の値EFFEHよりも大きくないの
で、切替部124を介して前記56Hの値は予備スタッ
クメモリ部111にスタックとして積まれる。また、ス
タックポインタ部115の値は、デクリメントされてE
FFDHとなる。次いで、更にスタック操作命令実行部
120においては、当該値の下位値78Hが切替部12
4に送られるが、スタックポインタ部115における前
記EFFDHの値は、スタック規定部122の値EFF
EHよりも大きくないので、切替部124を介して前記
78Hの値は予備スタックメモリ部111にスタックと
して積まれる。また、スタックポインタ部115の値
は、デクリメントされてEFFCHとなる。
【0026】続いて、制御部107による制御作用によ
り、命令206(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、スタック操作命令実行部
120により、切替部124に対する二つの値のラッチ
作用が行われる。この際、スタックポインタ部115の
値はインクリメントされてEFFDHとなるが、この値
は、スタック規定部122の値EFFEHよりも大きく
ないので、切替部124を介して予備スタックメモリ部
111よりスタックが読み出されて、一つ目の値78H
が下位値として命令実行部118に送られる。そして、
更に、スタックポインタ部115の値はインクリメント
されてEFFEHとなり、この値は、スタック規定部1
22の値EFFEHよりも大きくないので、切替部12
4を介して予備スタックメモリ部111よりスタックが
読み出されて、二つ目の値56Hが上位値として命令実
行部118に送られる。命令実行部118においては、
得られた値5678Hはレジスタ操作命令実行部121
に伝達され、レジスタ操作命令実行部121を介して、
BCレジスタ部113に設定される。
り、命令206(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、スタック操作命令実行部
120により、切替部124に対する二つの値のラッチ
作用が行われる。この際、スタックポインタ部115の
値はインクリメントされてEFFDHとなるが、この値
は、スタック規定部122の値EFFEHよりも大きく
ないので、切替部124を介して予備スタックメモリ部
111よりスタックが読み出されて、一つ目の値78H
が下位値として命令実行部118に送られる。そして、
更に、スタックポインタ部115の値はインクリメント
されてEFFEHとなり、この値は、スタック規定部1
22の値EFFEHよりも大きくないので、切替部12
4を介して予備スタックメモリ部111よりスタックが
読み出されて、二つ目の値56Hが上位値として命令実
行部118に送られる。命令実行部118においては、
得られた値5678Hはレジスタ操作命令実行部121
に伝達され、レジスタ操作命令実行部121を介して、
BCレジスタ部113に設定される。
【0027】続いて、制御部107による制御作用によ
り、命令207(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、スタック操作命令実行部
120により、切替部124に対する二つの値のラッチ
作用が行われる。この際、スタックポインタ部115の
値はインクリメントされてEFFFHとなるが、この値
は、スタック規定部122の値EFFEHよりも大きい
ので、切替部124を介してスタックメモリ部110よ
りスタックが読み出されて、一つ目の値34Hが下位値
として命令実行部118に送られる。そして、更に、ス
タックポインタ部115の値はインクリメントされてE
000Hとなり、この値は、スタック規定部122の値
EFFEHよりも大きいので、切替部124を介してス
タックメモリ部110よりスタックが読み出されて、二
つ目の値12Hが上位値として命令実行部118に送ら
れる。命令実行部118においては、得られた値123
4Hはレジスタ操作命令実行部121に伝達され、レジ
スタ操作命令実行部121を介して、HLレジスタ部1
14に設定される。
り、命令207(図2参照)がプログラムメモリ部10
8より読み出されて、命令入力部116を介して命令解
析部117に入力される。命令解析部117において
は、当該命令内容が解析され、スタック操作命令実行部
120により、切替部124に対する二つの値のラッチ
作用が行われる。この際、スタックポインタ部115の
値はインクリメントされてEFFFHとなるが、この値
は、スタック規定部122の値EFFEHよりも大きい
ので、切替部124を介してスタックメモリ部110よ
りスタックが読み出されて、一つ目の値34Hが下位値
として命令実行部118に送られる。そして、更に、ス
タックポインタ部115の値はインクリメントされてE
000Hとなり、この値は、スタック規定部122の値
EFFEHよりも大きいので、切替部124を介してス
タックメモリ部110よりスタックが読み出されて、二
つ目の値12Hが上位値として命令実行部118に送ら
れる。命令実行部118においては、得られた値123
4Hはレジスタ操作命令実行部121に伝達され、レジ
スタ操作命令実行部121を介して、HLレジスタ部1
14に設定される。
【0028】次に、スタック操作命令実行部121よ
り、切替部124に対して値Xを送出する場合の切替部
124における処理工程、即ちPUSH処理の内容につ
いて、図4のフローチャートを参照して説明する。
り、切替部124に対して値Xを送出する場合の切替部
124における処理工程、即ちPUSH処理の内容につ
いて、図4のフローチャートを参照して説明する。
【0029】まず、ステップ401においては、スタッ
クポインタ(SP)の値とスタック規定値とが比較さ
れ、スタックポインタの値の方が大きい場合には、ステ
ップ402に進み、逆にスタックポインタの値の方が大
きくない場合には、ステップ403に移行する。ステッ
プ402においては、スタックメモリ部110に値Xが
積まれて、ステップ404に進む。他方ステップ403
においては、予備スタックメモリ部111に値Xが積ま
れて、ステップ404に進む。これらのステップ402
およびステップ403に続いて、ステップ404におい
ては、スタックポインタがデクリメントされて(SP−
1)、本処理工程は終了する。
クポインタ(SP)の値とスタック規定値とが比較さ
れ、スタックポインタの値の方が大きい場合には、ステ
ップ402に進み、逆にスタックポインタの値の方が大
きくない場合には、ステップ403に移行する。ステッ
プ402においては、スタックメモリ部110に値Xが
積まれて、ステップ404に進む。他方ステップ403
においては、予備スタックメモリ部111に値Xが積ま
れて、ステップ404に進む。これらのステップ402
およびステップ403に続いて、ステップ404におい
ては、スタックポインタがデクリメントされて(SP−
1)、本処理工程は終了する。
【0030】次に、スタック操作命令実行部120によ
り、切替部124に対して値Xをラッチする場合の切替
部124における処理工程、即ちPOP処理の内容につ
いて、図5のフローチャートを参照して説明する。
り、切替部124に対して値Xをラッチする場合の切替
部124における処理工程、即ちPOP処理の内容につ
いて、図5のフローチャートを参照して説明する。
【0031】まず、ステップ501においては、スタッ
クポインタがインクリメントされ、ステップ502にお
いて、スタックポインタ(SP)の値とスタック規定値
とが比較され、スタックポインタの値の方が大きい場合
には、ステップ503に進み、逆にスタックポインタの
値の方が大きくない場合には、ステップ504に移行す
る。ステップ503においては、スタックメモリ部11
0より値Xが読み出されて本処理工程は終了する。他方
ステップ504においては、予備スタックメモリ部11
1より値Xが読み出されて、本処理工程は終了する。
クポインタがインクリメントされ、ステップ502にお
いて、スタックポインタ(SP)の値とスタック規定値
とが比較され、スタックポインタの値の方が大きい場合
には、ステップ503に進み、逆にスタックポインタの
値の方が大きくない場合には、ステップ504に移行す
る。ステップ503においては、スタックメモリ部11
0より値Xが読み出されて本処理工程は終了する。他方
ステップ504においては、予備スタックメモリ部11
1より値Xが読み出されて、本処理工程は終了する。
【0032】次に、本発明の第2の実施例として、図3
に示される指示手順情報に基づいて図2のプログラム情
報が入力されると、コンソール102に予備スタックメ
モリ使用メッセージが出力されるシミュレータの場合に
ついて、図6のPUSH処理のフローチャートを参照し
て説明する。
に示される指示手順情報に基づいて図2のプログラム情
報が入力されると、コンソール102に予備スタックメ
モリ使用メッセージが出力されるシミュレータの場合に
ついて、図6のPUSH処理のフローチャートを参照し
て説明する。
【0033】まず、ステップ601においては、スタッ
クポインタ(SP)の値とスタック規定値とが比較さ
れ、スタックポインタの値の方が大きい場合には、ステ
ップ602に進み、逆にスタックポインタの値の方が大
きくない場合には、ステップ603に移行する。ステッ
プ602においては、スタックメモリ部110に値Xが
積まれ、ステップ605に進む。他方ステップ603に
おいては、予備スタックメモリ部111に値Xが積まれ
てステップ604に進む。ステップ604においては、
制御部107に対して、予備スタックメモリ部111使
用のメッセージを出すようにとの指示が行われ、出力部
105により、当該メッセージがコンソール102に出
力されて、ステップ605に移行する。これらのステッ
プ602およびステップ604に続いて、ステップ60
5においては、スタックポインタがデクリメントされて
(SP−1)、本処理工程は終了する。
クポインタ(SP)の値とスタック規定値とが比較さ
れ、スタックポインタの値の方が大きい場合には、ステ
ップ602に進み、逆にスタックポインタの値の方が大
きくない場合には、ステップ603に移行する。ステッ
プ602においては、スタックメモリ部110に値Xが
積まれ、ステップ605に進む。他方ステップ603に
おいては、予備スタックメモリ部111に値Xが積まれ
てステップ604に進む。ステップ604においては、
制御部107に対して、予備スタックメモリ部111使
用のメッセージを出すようにとの指示が行われ、出力部
105により、当該メッセージがコンソール102に出
力されて、ステップ605に移行する。これらのステッ
プ602およびステップ604に続いて、ステップ60
5においては、スタックポインタがデクリメントされて
(SP−1)、本処理工程は終了する。
【0034】
【発明の効果】以上説明したように、本発明は、スタッ
クが規定値をオーバーしたことが検出されると、予備の
スタックメモリをデータメモリ中のスタックメモリの延
長として使用することにより、シミュレータの実行を停
止させることなく、正しくシミュレーション処理を行う
ことが可能となり、スタックのオーバーフローに起因す
るバグによるシミュレーション作業のやり直しを排除す
ることができるという効果がある。
クが規定値をオーバーしたことが検出されると、予備の
スタックメモリをデータメモリ中のスタックメモリの延
長として使用することにより、シミュレータの実行を停
止させることなく、正しくシミュレーション処理を行う
ことが可能となり、スタックのオーバーフローに起因す
るバグによるシミュレーション作業のやり直しを排除す
ることができるという効果がある。
【図1】本発明の一実施例のシステム構成図である。
【図2】入力ファイルのプログラム情報を示す図であ
る。
る。
【図3】コンソールに入力する指示手順情報を示す図で
ある。
ある。
【図4】第1の実施例におけるPUSH処理のフローチ
ャートを示す図である。
ャートを示す図である。
【図5】第1の実施例におけるPOP処理のフローチャ
ートを示す図である。
ートを示す図である。
【図6】第2の実施例におけるPUSH処理のフローチ
ャートを示す図である。
ャートを示す図である。
101 シミュレータ 102 コンソール 103 入力コンソール 104 ファイル入力部 105 出力部 106 入力部 107 制御部 108 プログラムメモリ部 109 データメモリ部 110 スタックメモリ部 111 予備スタックメモリ部 112 レジスタメモリ部 113 BCレジスタ部 114 HLレジスタ部 115 スタックポインタ部 116 命令実行部 117 命令解析部 118 命令実行部 119 データ操作命令実行部 120 スタック操作命令実行部 121 レジスタ操作命令実行部 122 スタック規定部 123 比較部 124 切替部
Claims (1)
- 【請求項1】 命令解析手段、命令実行手段、プログラ
ムメモリ手段、データメモリ手段およびレジスタメモリ
手段を有するマイクロコンピュータの命令シミュレータ
処理方式において、 所定のコンソールよりの指示情報を入力する入力手段
と、 所定の入力ファイルよりプログラム情報を入力して、前
記プログラムメモリ手段に収納するファイル入力手段
と、 前記入力手段を介して前記コンソールより入力される指
示情報を介して、所定のスタック規定値が設定されるス
タック規定手段と、 前記プログラムメモリ手段よりプログラム情報を読み出
して、前記命令解析手段に出力する命令入力手段と、 前記命令解析手段による命令解析結果により、前記命令
実行手段を介して前記レジスタメモリ手段に設定された
値と、前記スタック規定手段に設定されている値とを比
較する比較手段と、 前記比較手段による比較結果を参照して、前記レジスタ
メモリ手段に設定された値をそれぞれ識別して出力する
切替手段と、 前記切替手段より識別されて出力される値をそれぞれ区
分して収納するスタックメモリ手段ならびに予備スタッ
クメモリ手段と、 をシミュレータとして少なくとも備えて構成され、スタ
ックが前記スタック規定値をオーバーしたことが検出さ
れる場合には、前記予備スタックメモリ手段が、データ
メモリ中の前記スタックメモリ手段の延長として機能
し、シミュレータの実行を阻害することなく、正常にシ
ミュレーション処理を行うことを特徴とする命令シミュ
レータ処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5251261A JPH07105019A (ja) | 1993-10-07 | 1993-10-07 | 命令シミュレータ処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5251261A JPH07105019A (ja) | 1993-10-07 | 1993-10-07 | 命令シミュレータ処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07105019A true JPH07105019A (ja) | 1995-04-21 |
Family
ID=17220154
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5251261A Pending JPH07105019A (ja) | 1993-10-07 | 1993-10-07 | 命令シミュレータ処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07105019A (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02239329A (ja) * | 1989-03-14 | 1990-09-21 | Toshiba Corp | スタック管理システム |
| JPH05250221A (ja) * | 1992-03-10 | 1993-09-28 | Nec Corp | シミュレータ実行方式 |
-
1993
- 1993-10-07 JP JP5251261A patent/JPH07105019A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02239329A (ja) * | 1989-03-14 | 1990-09-21 | Toshiba Corp | スタック管理システム |
| JPH05250221A (ja) * | 1992-03-10 | 1993-09-28 | Nec Corp | シミュレータ実行方式 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2883784B2 (ja) | マイクロコンピュータ | |
| JPS60136833A (ja) | オペレ−テイングシステムの切替え方式 | |
| US5826078A (en) | Job re-execution system and controlling method thereof | |
| US6502176B1 (en) | Computer system and methods for loading and modifying a control program without stopping the computer system using reserve areas | |
| JPH07105019A (ja) | 命令シミュレータ処理方式 | |
| JP2765549B2 (ja) | コンピュータシステムにおける動作評価システム | |
| JP2001117791A (ja) | 割込命令チェック装置及び記録媒体 | |
| JPS635780B2 (ja) | ||
| JP2513142B2 (ja) | プログラムのシミュレ―タ装置 | |
| JPH05101109A (ja) | データベース演算処理装置 | |
| US11947408B2 (en) | Anomaly detection method, anomaly detection recording medium, anomaly detection device, rewriting method, and rewriting device | |
| JP3263999B2 (ja) | プログラム内容解析装置 | |
| JP2008234058A (ja) | 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置 | |
| JPS62276634A (ja) | 仮想計算機システム | |
| JPS63211033A (ja) | リラン時のジョブ制御方法 | |
| WO1990005951A1 (en) | Method of handling unintended software interrupt exceptions | |
| JP3039450B2 (ja) | スタック領域の切替方法、方式およびスタック領域切替プログラムを記録した記憶媒体 | |
| JPS61235925A (ja) | 電子計算機システムの運用方式 | |
| JPH0337201B2 (ja) | ||
| RU2393530C2 (ru) | Способ формирования дамп файла | |
| JPH01185729A (ja) | オーバレイ構造プログラム実行方式 | |
| JPS61278942A (ja) | デ−タ管理装置 | |
| JPS5842487B2 (ja) | プログラムのロ−デイング方式 | |
| JPS6275734A (ja) | エミユレ−シヨン方式 | |
| JPH05189211A (ja) | 情報処理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19960917 |