JP3398178B2 - シミュレータ - Google Patents

シミュレータ

Info

Publication number
JP3398178B2
JP3398178B2 JP14825693A JP14825693A JP3398178B2 JP 3398178 B2 JP3398178 B2 JP 3398178B2 JP 14825693 A JP14825693 A JP 14825693A JP 14825693 A JP14825693 A JP 14825693A JP 3398178 B2 JP3398178 B2 JP 3398178B2
Authority
JP
Japan
Prior art keywords
instruction
execution
display
code
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP14825693A
Other languages
English (en)
Other versions
JPH06337802A (ja
Inventor
貴之 竹谷
Original Assignee
株式会社シーエスケイ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社シーエスケイ filed Critical 株式会社シーエスケイ
Priority to JP14825693A priority Critical patent/JP3398178B2/ja
Publication of JPH06337802A publication Critical patent/JPH06337802A/ja
Application granted granted Critical
Publication of JP3398178B2 publication Critical patent/JP3398178B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータプログラ
ムをホスト・コンピュータ上でデバッグするシミュレー
タに関するものである。
【0002】
【従来の技術】近年、プロセッサ、メモリ、入出力制御
装置等を一つのチップに集積したワンチップ・マイクロ
コンピュータ(ワンチップ・マイコン)は、汎用CPU
と比べて見劣りしない性能のものが多数開発され、また
価格も安くなり、産業用や家電製品等に広く用いられて
いる。
【0003】このようなマイクロコンピュータシステム
のソフトウェア部分の開発手順は、例えば、まず、
(1)仕様より、機能単位に分割してフローチャートを
作成し、(2)このフローチャートよりコーディング
し、(3)全てのプログラム・モジュールのコーディン
グが完了したらアセンブルし、(4)アセンブルエラー
が無くなるまでプログラムを見直し、(5)インサーキ
ット・エミュレータ等でプログラムの単体テストを行
い、(6)ROMに書き込んで台上で各機能毎に動作確
認をし、(7)仕様のように動作しなければリストを目
で追い、(8)プログラム修正して再度(4)から繰り
返していた。
【0004】従来のコンピュータプログラムのデバッグ
には、主にインサーキット・エミュレータやデバッガ等
の開発ツールが使用されていた。インサーキット・エミ
ュレータは、マイクロプロセッサの代わりに目標システ
ムに接続することで、プログラムの任意の実行/停止、
メモリ資源等の読み/書き、実行のトレース機能等を有
するものである。また、通常、デバッガは、マシン語を
分析してその命令に対応するソースリストの行を表示す
る、いわゆるマシンコードデバッガが一般的である。
【0005】
【発明が解決しようとする課題】すなわち、従来コンピ
ュータプログラムの開発には、インサーキット・エミュ
レータが当然のように使用されていたが、インサーキッ
ト・エミュレータでなければデバックできないプログラ
ムは、それほど多くなく、その殆どは単にコーディング
のチェックのために使用しているのが実情であった。ま
た、インサーキット・エミュレータは、比較的高価であ
り、各メーカ別、各CPU毎に取り揃えることは困難で
あり、たとえインサーキット・エミュレータを導入して
も、システム開発全体に占める使用時間の割合が少な
く、稼働率が低いため、開発コストが高くなることがあ
った。さらに、インサーキット・エミュレータでデバッ
グするには、HEX(16進)ファイルが必要になる
が、このHEXファイルを作るためには、各プログラム
モジュールが完成していなければならない。通常、開発
の初期段階では、全てのプログラムモジュールが完成し
ていない間は、デバッグできないため、ダミープログラ
ムを用意するが、このダミープログラムの作成は、わず
かな時間であっても、全体では工数がかかっていた。
【0006】また、マシンコードデバッガでは、マシン
コードの動作チェックはできたが、オペランドの値につ
いては、その値がどのような値であっても関与しなかっ
たため、例えば、オペコードの長さの違いによるエラー
検出ができず、一見正しいように動作することがあっ
た。従来、このようなデバッグに対しては、机上で目視
によるチェックしかなかった。机上では全てのチェック
が可能であるが、人によるチェックのため検出能力にム
ラがあった。
【0007】すなわち、従来のプログラム開発ツール
は、ある程度チップ・メーカーに頼らざるをえないのが
実情であり、あまり選択の余地がなく、また、マイコン
システムの開発は、手作業によるところが多く、特に、
デバッグ工程は、手と目のみに頼った作業の連続であ
り、システム開発のサイクルの短縮が困難であった。
【0008】そこで本発明は、マイクロコンピュータの
プログラムをホスト・コンピュータ上で正確かつ短時間
にデバッグでき、システム開発の効率を向上できる開発
ツールを提供することを目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明のシミュレータは、目標システムのソース・
プログラムより生成したアセンブル・リストをホスト・
コンピュータ上で分解処理してロード・アドレス部分、
オブジェクト・プ ログラム部分、フラグが設定あるいは
解除されるフラグ領域を有するコード・テーブル及び
センブリ・ソース・プログラム部分を有するテキスト・
テーブルを得る分解処理手段と、前記コード・テーブル
及びテキスト・テーブルに基づき各命令別にチェック内
容が決められたチェック項目によりエラー検出をするチ
ェック処理手段と、前記コード・テーブルの命令コード
を1命令ずつホスト・コンピュータの命令列に翻訳して
実行する解釈実行手段と、前記チェック処理手段のエラ
ー検出結果及び解釈実行手段の実行結果を前記アセンブ
リ・ソース プログラム部分とともに1つの画面上に
ニタに表示する処理を行う表示処理手段と、前記分解処
理手段、チェック処理手段、解釈実行手段及び表示処理
手段に対するコマンド指示を処理するコマンド処理手段
とを備えたものである。
【0010】分解処理手段のコード・テーブルは、各命
令行毎に前記解釈実行手段による命令実行により実行済
を設定する実行済フラグ領域を有し、また各命令行毎に
コマンドによってブレーク・ポイントの設定・解除を行
うブレークフラグ領域を有する。
【0011】チェック処理手段は、目標システムのメモ
リの属性情報を予めコマンドにより設定するアクセス管
理テーブルと、前記コード・テーブル、テキスト・テー
ブル、アクセス管理テーブルに基づいてエラー検出処理
を行うエラー検出部とを有する。そして、エラー検出部
は、前記コード・テーブルから取り出した命令が擬似命
令であるかを検出する。エラー検出部は、前記コード・
テーブルから取り出した命令がジャンプ命令であるとき
にオペコードよりジャンプ先アドレスを計算し、テーブ
ル上の該当アドレスの有無を検出する。エラー検出部
は、前記コード・テーブルから取り出した命令がイミデ
ィエイトデータ命令であるときにテーブル上のオペコー
ド長さを得、CPUステータスのデータ長フラグを判断
する。エラー検出部は、前記コード・テーブルから取り
出した命令がイミディエイトインデックス命令であると
きにテーブル上のオペコード長さを得、CPUステータ
スのインデックス長フラグを判断する。エラー検出部
は、前記コード・テーブルから取り出した命令コードの
種類がメモリ読出し、メモリ書込み、その他であるかを
判断し、それぞれアクセス・アドレスに対応する前記ア
クセス管理テーブルのメモリ属性の一致を判断する。
【0012】解釈実行手段は、前記コード・テーブルの
オブジェクト・プログラムと実行ルーチンとの対応付け
をするオペコード・テーブルと、マシンコードのオペラ
ンドのアドレスを取得するアドレス関数ルーチンと、シ
ミュレーションのための前記実行ルーチンと、目標シス
テムに対応し命令の実行により読み書きをするRAMテ
ーブルと、前記コードテーブルのマシンコードを取り出
し、オペコード・テーブルのマシンコードとの一致を比
較し、一致したマシンコードの対応する実行ルーチンを
コールし、この実行ルーチンにおいてアドレッシングモ
ードに対応するアドレス関数によりアドレスを取得して
命令を実行する実行処理部とを有する。そして、実行処
理部は、コール命令を管理するポインタとしてのネスト
を設け、コール命令を実行したときにネストに1を加
え、リターン命令のときにネストから1を引き、コール
命令を実行しないとき次の命令を実行する。実行処理部
は、ノーオペレーション・コマンドをキー入力したと
き、現在のカーソル行を1行進め、続いて命令を実行せ
ずにプログラムカウンタの値を次の命令にスキップさせ
る。実行処理部は、命令実行時に前記コード・テーブル
のブレークフラグのオン・オフを判断し、オンであれば
ブレークを発生させる。
【0013】表示処理手段は、前記エラー検出部、実行
処理部及びアセンブル・リストのシンボル・ファイルか
ら生成されるデータのシンボルとアドレスとを対応付け
たシンボル・テーブルから与えられるデータをモニタに
表示するための表示処理を行う表示処理部を有する。そ
して、表示処理部は、前記実行処理部の命令実行により
設定された前記コード・テーブルの実行フラグのオン
・オフを判断し、その行の表示をオン・オフに対応して
色分けの表示の処理をする。表示処理部は、カーソルの
オペコードよりテーブル検索によりアドレッシング関数
を得、アドレッシング関数ルーチンをコールしてメモリ
のアドレスを得、RAMアドレスよりメモリの内容を表
示する処理をする。表示処理部は、現在の前記ネストを
セーブし、命令の実行分岐の後にリターンしたときセー
ブしたネストの比較をし、このセーブ値がネストの値よ
り小さいときに表示のスキップ処理をする。表示処理部
によるモニタに表示される表示画面は、前記RAMテー
ブルのシンボル名、そのアドレス及びそのアドレスの内
容を表示するRAM表示部と、前記テキスト・テーブル
の内容及びアンダーラインを付して現在のカーソル位置
を表示するトレース表示部と、レジスタ類の内容を表示
するレジスタ類表示部とを1つの画面上に有する。表示
処理部によるモニタに表示される表示画面は、総実行ス
テップに対する実行ステップ数の割合を表示する実行状
況表示部を有する。
【0014】
【作用】本発明によるシミュレータでは、分解処理手段
はアセンブル・リストをホスト・コンピュータ上で分解
処理してロード・アドレス部分、オブジェクト・プログ
ラム部分、フラグが設定あるいは解除されるフラグ領域
を有するコード・テーブル及びアセンブリ・ソース・プ
ログラム部分を有するテキスト・テーブルを得、チェッ
ク処理手段はコード・テーブル及びテキスト・テーブル
に基づき各命令別にチェック内容が決められたチェック
項目によりエラー検出し、解釈実行手段はコード・テー
ブルの命令コードを1命令ずつホスト・コンピュータの
命令列に翻訳して実行し、表示処理手段はチェック処理
手段のエラー検出結果及び解釈実行手段の実行結果を
センブリ・ソース プログラム部分とともに1つの画面
上にモニタに表示し、コマンド処理手段は各手段に対す
るコマンド指示を処理することで、マイクロコンピュー
タのプログラムをホスト・コンピュータ上で正確かつ短
時間にデバッグでき、システム開発の効率を向上できる
開発ツールを提供できる。
【0015】分解処理手段のコード・テーブルの各命令
行毎の実行済フラグ領域に、解釈実行手段による命令実
行により実行済を設定することで、どのぐらい実行した
か把握でき、またコマンドによってブレーク・ポイント
のブレークフラグ領域を設定・解除することで、任意の
位置でブレークを発生できる。
【0016】チェック処理手段のアクセス管理テーブル
は目標システムのメモリの属性情報を予めコマンドによ
り設定し、エラー検出部はコード・テーブル、テキスト
・テーブル、アクセス管理テーブルに基づいて、擬似命
令実行エラー、ジャンプ命令飛び先エラー、イミディエ
イトデータ長エラー、イミディエイト・インデックス長
エラー、メモリアクセスエラー等のエラー検出を行い、
このエラー検出をしたときフラグを設定することで、人
手による目と手によらず強力なエラーチェックができ
る。
【0017】解釈実行手段の実行処理部では、コードテ
ーブルのマシンコードを取り出し、オペコード・テーブ
ルのマシンコードとの一致を比較し、一致したマシンコ
ードの対応する実行ルーチンをコールし、この実行ルー
チンにおいてアドレッシングモードに対応するアドレス
関数によりアドレスを取得して命令を実行する。また、
コール命令を管理するポインタでネストを管理し、ノー
オペレーション・コマンドで現在のカーソル行を1行進
めて命令をスキップし、ブレークフラグのオン・オフを
判断してオンであればブレークを発生させ、実行済フラ
グのオン・オフを判断しオフであれば実行行カウントに
1を加えその実行済フラグをオンし実行行カウントの値
に基づきデバッグ率を算出することで、正確かつ短時間
に効率よいデバッグができる。
【0018】表示処理部では、各部から与えられるデー
タをモニタに表示する処理、特に、実行フラグのオン
・オフを判断してその行の表示をオン・オフに対応して
色分けの表示処理、メモリの内容を表示する処理、表示
のスキップ処理等をし、モニタに1つの画面上のRAM
表示部にアドレス及びそのアドレスの内容、トレース表
示部にテキスト・テーブルの内容及びアンダーラインを
付して現在のカーソル位置、レジスタ類表示部にレジス
タ類の内容を表示したり、あるいは実行状況表示部で総
実行ステップに対する実行ステップ数の割合を表示する
ことで、命令を実行しながらRAMやレジスタ類の変化
を同時に知ることができ、また実行済の行の確認やデバ
ッグの網羅性の把握ができる。
【0019】
【実施例】以下、本発明を図示の一実施例により具体的
に説明する。図2は本発明実施例のシミュレータの全体
構成を説明するブロック図である。
【0020】同図において、本発明のシミュレータ10
は、エディタ等を使用して作成した目標システムに対す
るソース・プログラム11を、アセンブラに入力して生
成したアセンブル・リスト(プリント・ファイル)12
をホスト・コンピュータを利用して、対象CPUの機械
語命令を1命令ずつ解釈し、エラー判定した後ホスト・
コンピュータの命令列に翻訳して実行するインタプリタ
方式のものであり、入出力インターフェース13を介し
て入力するアセンブル・リスト12をテキスト・テーブ
ルとコード・テーブルに分解処理する分解処理手段14
と、この分解処理手段14で分解したテキスト・テーブ
ルとコード・テーブル等に基づき各種のエラー検出に伴
うチェック処理を行うチェック処理手段15及び1命令
ずつホスト・コンピュータの命令列に翻訳して実行する
解釈実行手段16と、チェック処理手段15のチェック
結果及び解釈実行手段16の実行結果の表示処理を行う
表示処理手段17と、この表示処理手段17の処理結果
を入出力インターフェース13を介して出力し表示する
モニタ18と、各分解処理手段14、チェック処理手段
15、解釈実行手段16及び表示処理手段17等に対し
て各種の処理を指示するコマンド処理手段19と、入
力インターフェース13に接続される各種の入出力機器
20等とから構成される。
【0021】図1は本発明実施例のシミュレータの具体
的な構成を説明するブロック図である。なお、図1の対
応する部分は、同一の符号を記す。
【0022】同図において、シミュレータ10を構成す
るホスト・コンピュータは、例えば、32ビットあるい
は16ビットのマイクロプロセッサを搭載し、汎用のオ
ペレーティング・システム(OS)を備え、ユーザー使
用可能容量が256Kバイト以上のメモリ容量を有する
マイクロコンピュータが使用される。また、目標システ
ムに使用されるワンチップ・マイコンの動作仕様は、例
えば、シングルチップモードで、RAMテーブル最大シ
ンボル数が1024個、RAMテーブルが64Kバイ
ト、最大デバッグプログラム・ファイル・サイズが24
0Kバイト、最大デバッグプログラム行数が5000行
である。
【0023】アセンブル・リスト12は、予めソース・
プログラム11をアセンブラに入力して得られるプリン
ト・ファイルであり、例えば、図3に示すように、行番
号とロード・アドレス部分とオブジェクト・プログラム
部分とアセンブリ・ソース・プログラム部分等とからな
る。例えば、同図において、行番号「66」のロード・
アドレス部分が「000018」、オブジェクト・プロ
グラム部分が「A9C7」、アセンブリ・ソース・プロ
グラム部分が「LDA A,#199」である。このよ
うなアセンブル・リスト12は、もしアセンブル時にエ
ラーがあれば、ソース・プログラム11を修正して再び
アセンブルしたものであり、本実施例のホスト・コンピ
ュータで作成したもの、あるいは他のコンピュータで作
成したものである。
【0024】分解処理手段14は、分解処理部21と、
コード・テーブル22と、テキスト・テーブル23とか
らなり、入出力インターフェース13を介して入力した
アセンブル・リスト12を、分解処理部21でコード・
テーブル22とテキスト・テーブル23に分解処理する
機能を有する。コード・テーブル22は、図4に示すよ
うに、例えば、アセンブル・リスト12のロード・アド
レス部分とオブジェクト・プログラム部分、及び後に詳
細に説明する各命令行毎に確保されるブレークフラグ領
域と実行済フラグ領域とからなる。このブレークフラグ
領域は、命令のブレークポイントをコマンドによって設
定・解除を行うための領域、実行済フラグ領域は、命令
実行時に実行済フラグを設定するための領域である。テ
キスト・テーブル23は、アセンブリ・ソース・プログ
ラム部分である。
【0025】チェック処理手段15は、各種エラー検出
処理を行うエラー検出部24と、メモリの属性情報を予
めコマンドにより設定したアクセス管理テーブル25
と、エラー検出部24によるエラー検出時にフラグ設定
領域に設定されるフラグ26等とからなり、エラー検出
部24がコード・テーブル22とテキスト・テーブル2
3及び必要によりアクセス管理テーブル25に基づいて
各種エラー検出処理を行い、エラー検出時にフラグ26
フラグ設定領域に設定する機能を有する。アクセス管
理テーブル25は、例えば、図5に示すように、256
バイト単位に目標システムのメモリの属性情報を予め設
定したもので、「R」で表示される読み出し可能領域、
「W」で表示される書き込み可能領域、「RW」で表示
される読み書き可能領域等が設定されている。このよう
なメモリの属性情報は、後に説明するメモリ・プロテク
トに関するコマンドにより設定される。また、エラー検
出部24によるエラー検出は、各命令別にそれぞれチェ
ック項目が決められている。表1は命令別チェック・サ
マリーの一部を示しており、各命令に対して、記号A〜
Iに示す9個のチェック項目のうちのいずれか一つ以上
(図において2重丸を付している)をチェックする。こ
の表1の命令は、転送命令の一部であり、それぞれの命
令に対して、例えば、A、D、I等の項目をチェックす
る。このチェック項目は、表2に示すように、記号A〜
Iのチェック項目に対応して一定のチェック内容が決め
られている。例えば、表1及び表2の例において、転送
命令「LDA A,dd」は、エラーチェック項目Dの
メモリアクセスチェック(読み出しチェック)が行わ
れ、命令実行前にメモリの読み出しアドレスのアクセス
チェックが行われる。
【0026】
【表1】
【表2】
【0027】解釈実行手段16は、実行処理部27と、
オペコード・テーブル28と、アドレス関数ルーチン2
9と、実行ルーチン30と、RAMテーブル31等とか
らなる。オペコード・テーブル28は、コード・テーブ
ル2のオブジェクト・プログラム(コード)と実行ル
ーチンとの対応付けをするテーブルであり、例えば、図
6に示すように、対象CPUに備える全ての1バイトま
たは2バイトのマシンコードについて、その1命令に要
するマシンサイクル数(クロック数)、リード、ライ
ト、その他等のメモリへのアクセス・タイプ、オペラン
ドの長さ等で分類される命令コード・タイプ、実行ルー
チンへのポインタ、アドレス関数に関するアドレッシン
グモード等の論理構成を示している。アドレス関数ルー
チン29は、マシンコードのオペランドのアドレスを取
得するためのルーチン部分である。実行ルーチン30
は、シミュレーションのためのルーチン部分である。R
AMテーブル31は、目標システムに搭載されるRAM
に相当し、必要サイズのメモリ領域を確保し、実行によ
り所定の値が書き込まれたり、あるいは読み出されたり
する記憶領域部分である。実行処理部27は、実行に伴
う各種の処理を行う機能を有する部分である。すなわ
ち、実行処理部27は、実行開始時にコード・テーブル
22のマシンコードを取り出し、次にオペコード・テー
ブル28のマシンコードとの一致を比較し、一致したマ
シンコードの対応するポインタにより実行ルーチン30
をコールし、次に実行ルーチン30においてアドレッシ
ングモードに対応するアドレス関数によりメモリ等のア
ドレスを取得して命令を実行する。この命令の実行によ
りRAMテーブル31に所定の値が書き込まれたり、読
み出されたりする。
【0028】表示処理手段17は、エラー検出部24、
実行処理部27、シンボル・テーブル32等から与えら
れるデータを表示処理する表示処理部33等からなる。
シンボル・テーブル32は、データのシンボル(名前)
とアドレスとを対応付けたものであり、アセンブル・リ
スト11に付いてくるシンボル・ファイル34から入出
力インターフェース13を介して入力され、生成部35
で生成されるものである。なお、このシンボル・テーブ
ル32は、外部で予め生成したものを使用することもで
きる。
【0029】コマンド処理部19は、所定のコマンドを
キーボード等の入出力機器20から入出力インターフェ
ース13を介して入力することで、分解処理手段14、
チェック処理手段15、実行処理手段16、表示処理手
段17等に対して各種コマンド処理をする機能を有し、
例えば、命令の実行、スキップ、停止、ブレーク・ポン
トの設定・解除、各種レジスタ類の内容変更、RAMテ
ーブル31への属性を表示・設定、各種の初期化処理、
表示に関する各種指示等の処理を行う。表3は本実施例
のシミュレータに用意されているコマンド・リストの一
例であり、左欄のコマンドに対して右欄の機能を備えて
おり、例えば、コマンド「B」はブレークポイントをセ
ット/リセットし、コマンド「C」はカーソルをプログ
ラムカウンタ(PC)行にセットし、コマンド「M」は
RAMテーブル31の内容を設定し、コマンド「O」は
メモリのプロテクト属性を表示設定し、コマンド「R
A」はアキュムレータAの内容を変更する。なお、コマ
ンドには、入力されるとメッセージ行に、このコマンド
のメッセージが表示され、カーソル表示されて次にパラ
メータの入力待ちになる入力コマンドと、コマンドが入
力されるとメッセージ行に、コマンドのメッセージが表
示されて直ちに実行されるダイレクト・コマンドとがあ
る。表3のリスト中の「*」は、ダイレクト・コマンド
であることを示す。また、[ ]の中は省略できること
を示しており、省略した場合にはデフォルト値が使用さ
れる。
【0030】
【表3】
【0031】また、図1において、PC(プログラムカ
ウンタ)36は、命令の存在する場所のアドレスを保持
するレジスタであり、コマンドによりセットができる。
また、ポインタ37は、実行用及び表示用の2つのレジ
スタからなり、コマンドによりセットできる。さらに、
トレースファイル38は、実行結果の経歴を記録する部
分であり、プログラム終了時に出力することができる。
このトレースファイル38の内容は、例えば、「RAM
の値」、「エラーカウント」、「実行済行数」、「デバ
ッグ比率」、「ファイル名」、「日付時間」等である。
【0032】入出力機器20は、キーボード39、フロ
ッピーディスク装置40、ハードディスク装置41、プ
リンタ42等からなる。
【0033】図7は本発明実施例の表示処理部による表
示画面見本を示す。
【0034】同図において、表示画面50は、モニタ1
8に表示される標準的な画面例であり、最上部のタイト
ル表示部50aと、その下部のRAM表示部50bと、
ほぼ中央部のトレース表示部50cと、その右側の実行
状況表示部50d及びレジスタ類表示部50eと、最下
部のコマンド指示部50fとからなる。タイトル表示部
50aは、表題「インタプリタ シミュレータ」と、ジ
ャンプ命令等による飛び先を表示しないでスキップさせ
る注意表示「JSR skip trace」と、実行の年月日「19
93/5/10 」等とを表示している。RAM表示部50b
は、RAMテーブル31のシンボル名と、そのアドレス
と、そのアドレスの内容をそれぞれ16進表示、10進
表示、2進表示で表示しており、例えば、シンボル名
「RAM001」のアドレスが「(0001)」で、そ
のアドレスの内容の16進表示が「34」、10進表示
が「52」、2進表示が「00110100B」であ
る。なお、シンボル名の前の「*」は、現在のカーソル
の位置の命令のオペランドが指すメモリーアドレスを表
示している。トレース表示部50cは、アセンブリ・ソ
ース・プログラムの内容を表示しており、アンダーライ
ンを付してある部分は現在のカーソル位置を表示してい
る。実行状況表示部50dは、縦長の表示領域に、総ス
テップ数に対する実行ステップ数の割合をバーグラフで
表示しており、例えば、上部の0%位置から下部の10
0%位置に向かうバーの長さが割合を示している。レジ
スタ類表示部50eは、各レジスタ類の内容と、カーソ
ル位置のアドレス及びそのデータと、総ステップ数と、
実行ステップ数及びその割合と、実行ステップの累積さ
れたマシンサイクル数等とを表示している。例えば、A
レジスタ(アキュムレータ)の値が「FFFFH」、フ
ラグレジスタの「NVmxDIZC」に対応するビット
が「00001010B」、カーソル行のアドレスが
「(0005)」で、その内容が「0045H」、総ス
テップ「STEP」が「123」行、実行済行「EXE
C」の数が「12」でその割合が「23%」、累積マシ
ンサイクルが「12345」である。コマンド指示部5
0fは、コマンドを入力する部分を表示する「COMM
AND>」と、そのコマンド実行結果を表示する「ME
SSAGE>」とからなる。また、破線で示した矩形領
域にはネストを示す数字が表示される。
【0035】次に、上記構成によるシミュレータの実行
処理を中心とする具体的な処理例を図8〜図13のフロ
ーチャートを用いて説明する。
【0036】図8は本発明実施例の実行時におけるメイ
ン処理を説明するフローチャートである。
【0037】同図において、まず、アセンブル・エラー
を修正したアセンブル・リスト12がエミュレータ10
を構成するホスト・コンピュータに入出力インターフェ
ース19を介して読み込まれる(ST1)。次に、分解
処理部21において、読み込まれたアセンブル・リスト
12がテキスト部分とコード部分に分けてテーブル化さ
れ、テキスト・テーブル23とコード・テーブル22が
生成される(ST2)。次に、実行処理部27におい
て、コード・テーブル22のマシンコードを一つ取り出
し、オペコード・テーブル28を検索して一致したマシ
ンコードの対応するポインタにより実行ルーチン30の
アドレスを得(ST3)、次に実行ルーチン30をコー
ルし、アドレッシングモードに対応するアドレス関数に
よりメモリ等のアドレスを取得して命令を実行し(ST
4)、続いて次の命令を実行するために再び前のテーブ
ル検索のステップに戻る。
【0038】アセンブル・リスト12を入力して命令を
1ステップずつ実行できるため、従来のように実行形式
のファイルがなくても実行可能になり、全てのプログラ
ムモジュールが完成していなくても、開発の初期段階か
らプログラムモジュール単位のデバッグが可能になる。
【0039】図9は本発明実施例のコール命令のネスト
管理処理を説明するフローチャートである。
【0040】同図において、まず、実行処理部27で
は、コール命令を管理するポインタとしてネストを
「0」にして(ST11)、次に各命令のうちコール命
令を実行したか否かを判断し(ST12)、コール命令
のときにはネストに1を加え(ST13)、リターン命
令のときにはネストから1を引き(ST14)、コール
命令を実行しないときに、及びリターンで戻ってきたと
きに、ネスト表示管理(ST15)の処理をして、次の
命令の実行に戻る。
【0041】コール命令を続けると、ネストが深くなる
が、プログラム設計以上にネストが深くなっていないか
確認することができる。従来では、スタックポインタ等
によって計算していたが、処理が煩雑であった。
【0042】図10は本発明実施例の命令実行を飛ばす
NOP処理を説明するフローチャートである。
【0043】同図において、まず、NOP(ノーオペレ
ーション)コマンドである「N」をキー入力し(ST2
1)、次に現在のカーソル行を1行進め(ST22)、
PC(プログラムカウンタ)36の値を次の命令に進め
(ST23)、さらに空行であれば再びステップ(ST
23)に戻り(ST24)、空行でない場合は次の処理
に移行する(ST24)。
【0044】命令の実行をスキップさせたいときに、コ
マンド入力により1行カーソルを進めることで命令をス
キップさせているため、スキップ処理の操作が簡単にな
る。従来のデバッガで所定の命令をスキップさせたい場
合には、PCを変更する操作をしなければならず操作が
煩雑であった。
【0045】図11は本発明実施例のブレーク処理を説
明するフローチャートである。
【0046】同図において、まず、ブレークコマンドで
ある「B」をキー入力し(ST31)、次に現在のカー
ソル位置にブレークポイントを設定することでブレーク
フラグの設定・解除(オン・オフ)行う(ST32)。
すなわち、ブレークコマンドによりコード・テーブル2
2のブレークフラグ領域に行単位にブレークポイントを
設定する。次に、実行処理部27は、命令実行時にコー
ド・テーブル22のブレークフラグのオン・オフを判断
し(ST33)、オンであればブレークを発生し(ST
34)、オフであれば次の命令の実行時のブレークフラ
グの判断ステップに戻る。
【0047】コード・テーブル22において、行単位に
ブレークフラグ領域を設け、ブレークコマンドによりブ
レークポイントを設定・解除することで、ブレーク個数
に制限がなく、設定も容易である。従来のデバッガで
は、ブレークを発生させたい命令のアドレスを設定し、
そのアドレスとプログラムカウンタが同じ値になったと
きに、ブレークを発生させていたため、設定が煩雑で、
またブレークアドレスを管理するテーブルが必要にな
り、かつその設定個数も制限されていた。
【0048】図12は本発明実施例のデバッグ率の把握
処理を説明するフローチャートである。
【0049】同図において、まず、実行処理部27で
は、テーブルの総実行行数をカウントし(ST41)、
次に各命令が分岐実行した(ST42)後、コード・テ
ーブル22の実行済フラグのオン・オフを判断し(ST
43)、オフであれば実行カウントに1を加え(ST4
4)、その実行済フラグをオンして(ST45)から、
表示処理部33の処理で実行カレント表示を行い(ST
46)、オフであれば実行カウントと実行済フラグを変
化させずに実行カレント表示を行い、次の命令の分岐実
行のステップに戻る。実行カレント表示としては、モニ
タ18表示画面中のレジスタ類表示部50eに、実行行
カウントの値、この実行行カウントの値を総実行行数で
割り算して算出したデバッグ率等が表示され、また、実
行状況表示部50dに、デバッグ率がバーグラフで表示
される。
【0050】行単位に実行済フラグを設け、実行後に実
行行をカウントするとともに、実行済フラグをオンする
ことで、全実行行のうち現在どのぐらい実行したかを示
すデバッグ率を把握することができ、デバッグ率が10
0%になれば、全ステップを通過したことになり、効率
的なデバッグが図れ、テスト洩れをなくすことができ
る。従来の開発ツールでは、実行中のデバッグ率を知る
ことができなかった。
【0051】図13は本発明実施例のPCの設定処理を
説明するフローチャートである。
【0052】同図において、まず、カーソルを実行しよ
うとする行に移動させ(ST51)、次にコマンド
「P」をキー入力することで(ST52)、現在のカー
ソル行のアドレスがPCに設定され(ST53)、続い
てそのアドレスの命令が実行される(ST54)。
【0053】カーソルを実行しようとする行に移動さ
せ、コマンドによりカーソル位置のアドレスをPCに設
定して実行することで、ユーザーがプログラムのアドレ
スを意識することなく必要な所から実行できる。従来の
開発ツールでは、プログラムカウンタにアドレスを設定
したり、実行コマンドによりアドレスまたはシンボルを
設定する必要があり、操作が煩雑であった。
【0054】次に、上記構成によるシミュレータのエラ
ー検出処理を中心とする具体的な処理例を図14〜図1
8のフローチャートを用いて説明する。
【0055】図14は本発明実施例の擬似命令実行エラ
ー検出処理を説明するフローチャートである。
【0056】同図において、まず、エラー検出部24で
は、テーブル(コード及びテキスト)より命令コードを
取り出し(ST61)、次にこの命令コードが擬似命令
であるか否かを判断し(ST62)、擬似命令であれば
表示処理部33においてエラー表示の処理をし(ST6
3)、擬似命令でなければエラー表示をしないで次の処
理に進む。
【0057】命令コード中に擬似命令があったときに、
エラーの検出ができる。従来、インサーキット・エミュ
レータ等では、例えば、データの1バイトずつの定義を
するDB擬似命令、2バイト単位でデータを指定するD
W擬似命令等があっても、そのまま命令コードとして実
行してきた。
【0058】図15は本発明実施例のジャンプ命令飛び
先エラー検出処理を説明するフローチャトである。
【0059】同図において、まず、エラー検出部24で
は、コード・テーブル22から取り出した命令コードが
ジャンプ命令であるか否かを判断し(ST71)、ジャ
ンプ命令であるときには、オペコードよりジャンプ先ア
ドレスを計算し(ST72)、次にテーブル上の該当ア
ドレスの有無を判断し(ST73)、無いときにのみ表
示処理部33においてエラー表示の処理(ST74)を
して次の処理に進み、ジャンプ命令でないときには、そ
のまま次の処理に進む。
【0060】ジャンプ命令で、シンボルを使用しない場
合、インデックスを使用する場合等に、命令以外に飛び
先が変わることがあり、そのときのエラー検出ができ
る。従来の開発ツールでは、このようなエラー検出がで
きなかった。
【0061】図16は本発明実施例のイミディエイトデ
ータ長エラー検出処理を説明するフローチャートであ
る。
【0062】同図において、まず、エラー検出部24で
は、コード・テーブルから取り出した命令コードがイミ
ディエイトデータ命令であるか否かを判断する(ST8
1)。イミディエイトデータ命令であるときには、テー
ブル上のオペコード長さを得(ST82)、次にCPU
ステータスのデータ長フラグで1バイトデータか1バイ
トデータかを判断する(ST83)。1バイトデータの
ときには、テーブル上のオペコード長が1バイトである
か判断し(ST84)、1バイトでないときにのみ表示
処理部33においてエラー表示の処理(ST85)をし
て次の処理に進み、また、2バイトデータのときには、
テーブル上のオペコード長が2バイトであるか判断し
(ST86)、2バイトでないときにのみ表示処理部3
3においてエラー表示の処理(ST85)をして次の処
理に進む。イミディエイトデータ命令でないときには、
そのまま次の処理に進む。
【0063】イミディエイトデータ長は、CPUステー
タスの状態によって、1バイト長、2バイト長に変化す
る。アセンブル時に、仮の値として擬似命令で指定す
る。実際にCPUが動作するとき、CPUステータスの
状態が不一致であると、バグになる。従来のデバッグで
は、目視によって検出していた。
【0064】図17は本発明実施例のイミディエイト・
インデックス長エラー検出処理を説明するフローチャー
トである。
【0065】同図において、まず、エラー検出部24で
は、コード・テーブル22から取り出した命令コードが
イミディエイトインデックス命令であるか否かを判断す
る(ST91)。イミディエイトインデックス命令であ
るときには、テーブル上のオペコード長さを得(ST9
2)、次にCPUステータスのインデックス長フラグで
1バイトデータか1バイトデータかを判断する(ST9
3)。1バイトデータのときには、テーブル上のオペコ
ード長が1バイトであるか判断し(ST94)、1バイ
トでないときにのみ表示処理部33においてエラー表示
の処理(ST95)をして次の処理に進み、また、2バ
イトデータのときには、テーブル上のオペコード長が2
バイトであるか判断し(ST96)、2バイトでないと
きにのみ表示処理部33においてエラー表示の処理(S
T95)をして次の処理に進む。イミディエイトインデ
ックス命令でないときには、そのまま次の処理に進む。
【0066】イミディエイト・インデックス長は、CP
Uステータスの状態によって、1バイト長、2バイト長
に変化する。アセンブル時に、仮の値として擬似命令で
指定する。実際にCPUが動作するとき、CPUステー
タスの状態が不一致であると、バグになる。従来のデバ
ッグでは、目視によって検出していた。
【0067】図18は本発明実施例のメモリアクセスの
エラー検出処理を説明するフローチャートである。
【0068】同図において、まず、エラー検出部24で
は、コード・テーブルから取り出した命令コードの種類
が、メモリ読出し、メモリ書込み、その他であるかを判
断する(ST101)。このような判断は、例えば、オ
ペコード・テーブル28のメモリのアクセス・タイプ欄
で行う。命令コードがメモリ読出しのときには、アクセ
ス・アドレスに対応するメモリの属性が読出し可能
(R)であるか否かをアクセス管理テーブル25から判
断し(ST102)、読出し可能でないときにのみ表示
処理部33においてエラー表示の処理(ST103)を
して次の処理に進む。命令コードがメモリ書込みのとき
には、アクセス・アドレスに対応するメモリの属性が書
込み可能(W)であるか否かをアクセス管理テーブル2
5から判断し(ST104)、書込み可能でないときに
のみ表示処理部33においてエラー表示の処理(ST1
03)をして次の処理に進む。命令コードがその他のと
きには、そのまま次の処理に進む。
【0069】アクセス管理テーブル25にメモリの属性
情報を予め設定し、命令の種類を判断して、メモリアク
セスのエラー検出をすることで、例えば、プログラム領
域でないアドレスへのアクセス、メモリが実装されてな
い領域への不正なアクセス等があった場合に、エラー検
出できる。従来では、例えば、命令の実行ルーチンで、
関数によってメモリの読み書きを行っており、この関数
でそのアドレスが正常なものか判断していた。
【0070】なお、メモリが実装されていないアドレス
や、プログラム領域でないアドレスを実行しようとした
とき、同様にして、インストラクション・フェッチ・ア
ドレスのエラー検出することができる。
【0071】次に、上記構成によるシミュレータの表示
処理を中心とする具体的な処理例を図19〜図21のフ
ローチャートを用いて説明する。
【0072】図19は本発明実施例の実行表示処理を説
明するフローチャートである。
【0073】同図において、まず、実行処理部27で
は、命令実行による実行フラグをコード・テーブル2
2に設定する(ST111)。次に、表示処理部33で
は、各行のプログラムの実行フラグがオンかオフかを
判断し(ST112)、オフのときにはその行を白表示
処理をし(ST113)、オンのときにはその行を緑表
示処理をし(ST113)て次の処理に進む。
【0074】コード・テーブル22の命令実行による実
フラグのオン・オフを検出して、それに応じて白ま
たは緑で色分けで表示することで、プログラムが実行済
か否かを把握することができ、いわゆるホワイト・ボッ
クス・テストの網羅性を確認することができる。従来で
は、このような網羅性を簡単に目視することができなか
った。
【0075】図20は本発明実施例のカーソルRAM表
示処理を説明するフローチャートである。
【0076】同図において、まず、表示処理部33で
は、カーソルのオペコードよりテーブル検索によりアド
レッシング関数を得(ST121)、次にアドレッシン
グ関数をコールしてメモリのアドレスを得(ST12
2)、続いてRAMアドレスよりメモリの内容を表示す
る(ST123)。
【0077】実行する命令の指すRAMがどのような値
かを、カーソルを移動させるだけで簡単に確認すること
ができる。従来では、メモリダンプコマンドで必要なR
AMを表示させたり、プログラムカウンタのある所のみ
表示させていたため、操作が煩雑であった。
【0078】図21は本発明実施例のスキップ処理を説
明するフローチャートである。
【0079】同図において、まず、現在のネストをセー
ブし(ST131)、次に、命令の実行分岐(ST13
2)の後、リターンしたときセーブしたネストの比較を
して(ST133)、セーブ値がネストの値より小さい
ときには再び命令実行に戻り、セーブ値がネストの値よ
り大きいか等しいときに、次の処理に進む。このセーブ
値がネストの値より小さいときは、表示処理が行われな
い。
【0080】テスト済のルーチンは、各ステップ毎にト
レースして確認する必要がなく、その処理さえすれば良
いから、時間短縮になる。従来では、コール命令の次の
命令にブレークポイントを置き、そのアドレスまで連続
実行させていた。
【0081】なお、命令の実行エラーの場合、エラー種
別ごとにカウントされ、この結果がプログラム終了時に
表示され、トレースファイル38に書き込まれる。表示
されるエラーメッセージとしては、例えば、不正命令コ
ード、データ長選択フラグとオブジェクトコードがあっ
ていない、ジャンプ先が命令行の中間、0除算、読出し
禁止メモリに読出しをした、書込み禁止メモリに書込み
をした、アドレスが定義されていない、レジスタが0で
ない等が表示される。
【0082】上記構成のシミュレータによれば、ホスト
・コンピュータ上に構成されるソフトウェアによる機能
実現手段である、分解処理手段14、チェック処理手段
15、解釈実行手段16、表示処理手段17、コマンド
処理手段19等を備えることで、アセンブル時に作成さ
れるアセンブル・リスト(リストファイル)を読み込
み、1命令ずつ直接シミュレーションすることができ、
また、アセンブラでできない各種のエラーチェックをす
ることで、従来の人手による目と手に依らなければでき
なかったデバックが機械的に正確かつ短時間にでき、シ
ステム開発の効率を向上できる。従来のインサーキット
・エミュレータを使用してデバックする場合と比較し
て、その置く場所を必要とせず、コンピュータさえあれ
ば何処ででもデバックでき、かつ実行モジュールを必要
とせずにアセンブルしただけで実行することができる。
【0083】また、実行処理部27では実行行をカウン
トし、どのくらい実行したかを表示処理部33の処理に
より、モニタ18の表示画面に表示することで、従来の
開発ツールでできなかったデバッグ率の把握が可能にな
る。
【0084】さらに、エラー検出部24では、アクセス
管理テーブルを用いて、RAMのアクセスをチェックし
ているため、RAMのアクセス状況が把握できる。
【0085】また、表示処理部33で表示処理して、モ
ニタ18の表示画面50において、RAM表示部50b
にRAMテーブル31の内容、トレース表示部50cに
カーソルを付したソース・プログラムの内容、レジスタ
類表示部50eに各種のレジスタの内容を、1つの画面
上に表示しているため、命令を実行しながらRAMやレ
ジスタの変化を同時に確認することができ効率的なデバ
ックができる。また、表示処理部33では、命令を実行
することによって表示色が変化し、実行済の行が確認で
きるため、内部処理機能が明白である場合は、この処理
ルーチンの全パスを通るような入力ータを与えてその
結果をチェックを行う、いわゆるホワイト・ボックス・
テストの網羅性の把握ができる。
【0086】プログラムのテスト結果は、例えば、トレ
ースファイル38にファイルされるため、後でテスト結
果の机上チェックも可能になる。また、ログファイルか
ら入力コマンドを自動運転により与えることもでき、こ
れによりプログラムの内容を知らない人でも簡単に取り
扱うことができる。
【0087】なお、上記実施例において、ワンチップ・
マイコンを例に説明したが、各種のマイクロコンピュー
タを搭載したシステムのプログラム開発に適用でき、ホ
スト・コンピュータも必要な性能と要領を有するワーク
ステーションやパーソナルコンピュータを使用すること
ができる。
【0088】また、オペコード・テーブル28、アドレ
ス関数ルーチン29、実行ルーチン30は、目標CPU
の命令やホスト・コンピュータの種類により任意に設定
される。実施例のチェック処理手段15におけるエラー
検出は、代表的な例であり、その他の任意のエラー検出
を追加することができる。また、モニタ18の表示画面
は一例であり、実施例に限定されない。
【0089】
【発明の効果】以上説明したように本発明では、分解処
理手段14、チェック処理手段15、解釈実行手段1
6、表示処理手段17、コマンド処理手段19等を備
え、アセンブル時に作成されるアセンブル・リストを読
み込み、1命令ずつ直接シミュレーションするととも
に、アセンブラでできない各種のエラーチェックをする
ことで、プログラムのデバッグを正確かつ短時間にで
き、開発の効率を向上できる効果がある。
【図面の簡単な説明】
【図1】本発明実施例のシミュレータの具体的な構成を
説明するブロック図である。
【図2】本発明実施例のシミュレータの全体構成を説明
するブロック図である。
【図3】本発明実施例のアセンブル・リストの具体例を
説明する図である。
【図4】本発明実施例のコード・テーブルの具体例を説
明する図である。
【図5】本発明実施例のアクセス管理テーブルの具体例
を説明する図である。
【図6】本発明実施例のオペコード・テーブルの具体例
を説明する図である。
【図7】本発明実施例の表示処理部による表示画面見本
を示す。
【図8】本発明実施例の実行時のメイン処理を説明する
フローチャートである。
【図9】本発明実施例のコール命令のネスト管理処理を
説明するフローチャートである。
【図10】本発明実施例の命令の実行を飛ばすNOP処
理を説明するフローチャートである。
【図11】本発明実施例のブレーク処理を説明するフロ
ーチャートである。
【図12】本発明実施例のデバッグ率の把握処理を説明
するフローチャートである。
【図13】本発明実施例のPCの設定処理を説明するフ
ローチャートである。
【図14】本発明実施例の擬似命令実行エラー検出処理
を説明するフローチャートである。
【図15】本発明実施例のジャンプ命令飛び先エラー検
出処理を説明するフローチャートである。
【図16】本発明実施例のイミディエイトデータ長エラ
ー検出処理を説明するフローチャートである。
【図17】本発明実施例のイミディエイト・インデック
ス長エラー検出処理を説明するフローチャートである。
【図18】本発明実施例のメモリアクセスのエラー検出
処理を説明するフローチャートである。
【図19】本発明実施例の実行表示処理を説明するフロ
ーチャートである。
【図20】本発明実施例のカーソルRAM表示処理を説
明するフローチャートである。
【図21】本発明実施例のスキップ処理を説明するフロ
ーチャートである。
【符号の説明】
10 シミュレータ 11 ソース・プログラム 12 アセンブル・リスト 13 入出力インターフェース 14 分解処理手段 15 チェック処理手段 16 解釈実行手段 17 表示処理手段 18 モニタ 19 コマンド処理手段 20 入出力機器 21 分解処理部 22 コード・テーブル 23 テキスト・テーブル 24 エラー検出部 25 アクセス管理テーブル 26 フラグ 27 実行処理部 28 オペコード・テーブル 29 アドレス関数ルーチン 30 実行ルーチン 31 RAMテーブル 32 シンボル・テーブル 33 表示処理部 34 シンボル・ファイル 35 生成部 36 PC(プログラムカウンタ) 37 ポインタ 38 トレースファイル 39 キーボード 40 フロッピーディスク装置 41 ハードディスク装置 42 プリンタ 50 表示画面
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 - 11/34 G06F 15/78

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 目標システムのソース・プログラムより
    生成したアセンブル・リストをホスト・コンピュータ上
    で分解処理してロード・アドレス部分、オブジェクト・
    プログラム部分、フラグが設定あるいは解除されるフラ
    グ領域を有するコード・テーブル及びアセンブリ・ソー
    ス・プログラム部分を有するテキスト・テーブルを得る
    分解処理手段と、前記コード・テーブル及びテキスト・
    テーブルに基づき各命令別にチェック内容が決められた
    チェック項目によりエラー検出をするチェック処理手段
    と、前記コード・テーブルの命令コードを1命令ずつホ
    スト・コンピュータの命令列に翻訳して実行する解釈実
    行手段と、前記チェック処理手段のエラー検出結果及び
    解釈実行手段の実行結果を前記アセンブリ・ソース
    ログラム部分とともに1つの画面上にモニタに表示する
    処理を行う表示処理手段と、前記分解処理手段、チェッ
    ク処理手段、解釈実行手段及び表示処理手段に対するコ
    マンド指示を処理するコマンド処理手段とを備えたシミ
    ュレータ。
  2. 【請求項2】 前記分解処理手段のコード・テーブル
    は、各命令行毎に前記解釈実行手段による命令実行によ
    り実行済を設定する実行済フラグ領域を有する請求項1
    記載のシミュレータ。
  3. 【請求項3】 前記分解処理手段のコード・テーブル
    は、各命令行毎にコマンドによってブレーク・ポイント
    の設定・解除を行うブレークフラグ領域を有する請求項
    1記載のシミュレータ。
  4. 【請求項4】 前記チェック処理手段は、目標システム
    のメモリの属性情報を予めコマンドにより設定するアク
    セス管理テーブルと、前記コード・テーブル、テキスト
    ・テーブル、アクセス管理テーブルに基づいてエラー検
    出処理を行うエラー検出部とを有する請求項1、2また
    は3記載のシミュレータ。
  5. 【請求項5】 前記エラー検出部は、前記コード・テー
    ブルから取り出した命令が擬似命令であるかを検出する
    請求項4記載のシミュレータ。
  6. 【請求項6】 前記エラー検出部は、前記コード・テー
    ブルから取り出した命令がジャンプ命令であるときにオ
    ペコードよりジャンプ先アドレスを計算し、テーブル上
    の該当アドレスの有無を検出する請求項4記載のシミュ
    レータ。
  7. 【請求項7】 前記エラー検出部は、前記コード・テー
    ブルから取り出した命令がイミディエイトデータ命令で
    あるときにテーブル上のオペコード長さを得、CPUス
    テータスのデータ長フラグを判断する請求項4記載のシ
    ミュレータ。
  8. 【請求項8】 前記エラー検出部は、前記コード・テー
    ブルから取り出した命令がイミディエイトインデックス
    命令であるときにテーブル上のオペコード長さを得、C
    PUステータスのインデックス長フラグを判断する請求
    項4記載のシミュレータ。
  9. 【請求項9】 前記エラー検出部は、前記コード・テー
    ブルから取り出した命令コードの種類がメモリ読出し、
    メモリ書込み、その他であるかを判断し、それぞれアク
    セス・アドレスに対応する前記アクセス管理テーブルの
    メモリ属性の一致を判断する請求項4記載のシミュレー
    タ。
  10. 【請求項10】 前記解釈実行手段は、前記コード・テ
    ーブルのオブジェクト・プログラムと実行ルーチンとの
    対応付けをするオペコード・テーブルと、マシンコード
    のオペランドのアドレスを取得するアドレス関数ルーチ
    ンと、シミュレーションのための前記実行ルーチンと、
    目標システムに対応し命令の実行により読み書きをする
    RAMテーブルと、前記コードテーブルのマシンコード
    を取り出し、オペコード・テーブルのマシンコードとの
    一致を比較し、一致したマシンコードの対応する実行ル
    ーチンをコールし、この実行ルーチンにおいてアドレッ
    シングモードに対応するアドレス関数によりアドレスを
    取得して命令を実行する実行処理部とを有する請求項
    1、2、3または4記載のシミュレータ。
  11. 【請求項11】 前記実行処理部は、コール命令を管理
    するポインタとしてのネストを設け、コール命令を実行
    したときにネストに1を加え、リターン命令のときにネ
    ストから1を引き、コール命令を実行しないとき次の命
    令を実行する請求項10記載のシミュレータ。
  12. 【請求項12】 前記実行処理部は、ノーオペレーショ
    ン・コマンドをキー入力したとき、現在のカーソル行を
    1行進め、続いて命令を実行せずにプログラムカウンタ
    の値を次の命令にスキップさせる請求項10記載のシミ
    ュレータ。
  13. 【請求項13】 前記実行処理部は、命令実行時に前記
    コード・テーブルのブレークフラグのオン・オフを判断
    し、オンであればブレークを発生させる請求項10記載
    のシミュレータ。
  14. 【請求項14】 前記表示処理手段は、前記エラー検出
    部、実行処理部及びアセンブル・リストのシンボル・フ
    ァイルから生成されるデータのシンボルとアドレスとを
    対応付けたシンボル・テーブルから与えられるデータを
    モニタに表示するための表示処理を行う表示処理部を有
    する請求項1、2、3、4または10記載のシミュレー
    タ。
  15. 【請求項15】 前記表示処理部は、前記実行処理部の
    命令実行により設定された前記コード・テーブルの実行
    フラグのオン・オフを判断し、その行の表示をオン・
    オフに対応して色分けの表示の処理をする請求項1
    載のシミュレータ。
  16. 【請求項16】 前記表示処理部は、カーソルのオペコ
    ードよりテーブル検索によりアドレッシング関数を得、
    アドレッシング関数ルーチンをコールしてメモリのアド
    レスを得、RAMアドレスよりメモリの内容を表示する
    処理をする請求項1記載のシミュレータ。
  17. 【請求項17】 前記表示処理部は、現在の前記ネスト
    をセーブし、命令の実行分岐の後にリターンしたときセ
    ーブしたネストの比較をし、このセーブ値がネストの値
    より小さいときに表示のスキップ処理をする請求項11
    または1記載のシミュレータ。
  18. 【請求項18】 前記表示処理部によるモニタに表示さ
    れる表示画面は、前記RAMテーブルのシンボル名、そ
    のアドレス及びそのアドレスの内容を表示するRAM表
    示部と、前記テキスト・テーブルの内容及びアンダーラ
    インを付して現在のカーソル位置を表示するトレース表
    示部と、レジスタ類の内容を表示するレジスタ類表示部
    とを1つの画面上に有する請求項1記載のシミュレー
    タ。
  19. 【請求項19】 前記表示処理部によるモニタに表示さ
    れる表示画面は、総実行ステップに対する実行済ステッ
    プ数の割合を表示する実行状況表示部を有する請求項1
    または1記載のシミュレータ。
  20. 【請求項20】 前記表示処理部によるモニタに表示さ
    れる表示画面は、レジスタ類の内容を表示するレジスタ
    類表示部を有する請求項1、1または19記載のシ
    ミュレータ。
JP14825693A 1993-05-28 1993-05-28 シミュレータ Expired - Fee Related JP3398178B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14825693A JP3398178B2 (ja) 1993-05-28 1993-05-28 シミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14825693A JP3398178B2 (ja) 1993-05-28 1993-05-28 シミュレータ

Publications (2)

Publication Number Publication Date
JPH06337802A JPH06337802A (ja) 1994-12-06
JP3398178B2 true JP3398178B2 (ja) 2003-04-21

Family

ID=15448719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14825693A Expired - Fee Related JP3398178B2 (ja) 1993-05-28 1993-05-28 シミュレータ

Country Status (1)

Country Link
JP (1) JP3398178B2 (ja)

Also Published As

Publication number Publication date
JPH06337802A (ja) 1994-12-06

Similar Documents

Publication Publication Date Title
US8266608B2 (en) Post-compile instrumentation of object code for generating execution trace data
US6550056B1 (en) Source level debugger for debugging source programs
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US5926638A (en) Program debugging system for debugging a program having graphical user interface
US9152531B2 (en) Post-compile instrumentation of object code for generating execution trace data
US6141791A (en) Debug aid device, program compiler device, storage medium storing computer-readable debugger program, and storage medium storing program compiler program
JPH0689200A (ja) デバッグシステム及び方法
US7093165B2 (en) Debugging Method
US20060041867A1 (en) Method, apparatus and computer program product for implementing enhanced compiled breakpoint analysis
GB2413657A (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
US7240334B1 (en) Methods, systems, and computer program products for deferred computer program tracing
US20030177471A1 (en) System and method for graphically developing a program
US20050066312A1 (en) Inter-job breakpoint apparatus and method
JPS60107142A (ja) プログラム翻訳装置
JP3398178B2 (ja) シミュレータ
US6611924B1 (en) Reducing code size of debug output statements
JPH0766342B2 (ja) プログラムテスト装置
JPH07191874A (ja) インサーキット・エミュレータ
JP2888242B2 (ja) マイクロプロセッサのプログラム開発システム
JP2659366B2 (ja) デバッグ方法及びその装置
Thompson Microprogrammed Simulation System for General Purpose Register and Fixed Purpose Register Minicomputers
JP3716635B2 (ja) 情報処理装置、及びその割込み制御方法
JPH0465729A (ja) シンボリック・デバッガ
JP2662533B2 (ja) ロジック・アナライザ
JPH05241887A (ja) コンピュータ装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees