JP3787951B2 - コード変換方法及びこれを用いたコード変換装置 - Google Patents
コード変換方法及びこれを用いたコード変換装置 Download PDFInfo
- Publication number
- JP3787951B2 JP3787951B2 JP12271397A JP12271397A JP3787951B2 JP 3787951 B2 JP3787951 B2 JP 3787951B2 JP 12271397 A JP12271397 A JP 12271397A JP 12271397 A JP12271397 A JP 12271397A JP 3787951 B2 JP3787951 B2 JP 3787951B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- symbol
- address
- macro instruction
- macro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明は、アセンブラソース中のマクロ命令を展開する手段の改良に関する。
【0002】
【従来の技術】
この種のアセンブラ中のマクロ命令を展開する手段としては、シンボルを介したマクロ命令は、リンク時にシンボルがアドレス空間のどこに割り当てられても誤動作しないように、展開されていた。
【0003】
【発明が解決しようとする課題】
しかしながら、シンボルアドレスがどこでも、正しく処理できるようにするためには、冗長の命令に展開せざるおえないため、命令数、実行スピードとも、無駄が多くなるという課題を有する。
【0004】
【課題を解決するための手段】
本発明のコード変換装置は、(a)アセンブラ言語により表現されたアセンブラソースコード列を記憶する記憶手段と、(b)該アセンブラソースコード列に含まれるメモリアクセスをおこなうマクロ命令を検出するマクロ命令検出手段と、(c)該マクロ命令が含むシンボルのシンボルアドレス定義ファイルを記憶するシンボルアドレス定義記憶手段と、(d)該シンボルに対応したシンボルアドレスを該シンボルアドレス定義記憶手段に記憶された前記シンボルアドレス定義ファイルにより計算するアドレス計算手段と、(e)該計算値に基づいて最小数の命令列に前記マクロ命令を展開し該命令列を出力するマクロ命令展開手段とを有することを特徴とする。
【0005】
本発明のコード変換方法は、(a)マクロ命令検出手段が、アセンブラソースコード列を記憶する記憶手段に記憶されたアセンブラソースコード列に含まれるメモリアクセスをおこなうマクロ命令を検出するステップと、(b)アドレス計算手段が、該マクロ命令が含むシンボルに対応したシンボルアドレスを計算するステップと、(c)マクロ命令展開手段が、該計算値に基づいて最小数の命令列に前記マクロ命令を展開するステップと、を含むことによってコード変換を行うことを特徴とする。
【0006】
【発明の実施の形態】
以下、本発明を実施例により詳細に説明する。
【0007】
図1は本発明の一実施例システムの構成図である。図中、1は中央処理装置、2は記憶装置、3はマクロ命令検出手段、4はアドレス計算手段、5はマクロ命令展開手段、6はアセンブラソース入力ファイル、7はシンボルアドレス定義ファイル、8はアセンブラソース出力ファイルを示す。
【0008】
マクロ命令検出手段3は、アセンブラソース入力ファイル6を入力し、ファイル内のメモリアクセスをおこなうマクロ命令を検出する。
【0009】
アドレス計算手段4は、シンボルアドレス定義ファイル2を入力し、マクロ命令検出手段3が検出したマクロ命令のオペランドのシンボルのアドレスを計算し結果をマクロ命令展開手段5に渡す。
【0010】
マクロ命令展開手段5は、アドレス計算手段4の演算結果を基に、マクロ命令検出手段3が検出した命令を、最適なアセンブラ命令に展開する。
【0011】
以下は16ビット固定長命令で24ビットのアドレス空間をもつCPU用のアセンブラの例である
メモリアクセスの一例として、メモリの内容をレジスタに読み込む方法を図2を使用し説明する。図2の「ld reg1, [REG9]」命令4はレジスタ9の示すアドレスの内容をレジスタ1に読み込むロード命令である。レジスタ値の示すアドレスにメモリアクセスをするため、レジスタ9にアドレス値を格納する必要がある。1命令でレジスタに格納できる即値は8ビットまでとする。このため8ビット以上の即値を格納するには即値拡張命令「ext」を使用する。即値拡張命令を1つ組み合わせると16ビットまでの即値データを扱うことができ、2つの組み合わせで24ビットまでの即値データを扱える。命令1から命令4の4命令で24ビットアドレスにアクセスでき、命令2から命令4の3命令で16ビットアドレスにアクセスでき、命令3と命令4の2命令で8ビットアドレスにアクセスできる。命令3のシンボル名の後に付いている「@l」はシンボル値[SYMBOL]の0〜7ビットをマスクする意味である。同様に命令2の「@m」はシンボル値[SYMBOL]の8〜15ビットのマスク、命令1の「@h」はシンボル値[SYMBOL]の16〜24ビットのマスクである。
【0012】
図2のマクロ命令「xld reg1,[SYMBOL]」は以上4種類のパターンに展開できる。従来はシンボル値がマクロ命令展開の段階では未定なためメモリアクセスは24ビット空間にアクセスする必要があるので、「xld reg1,[SYMBOL]」命令は必ず命令1から命令4の4命令に展開していた。本発明のアセンブラマクロ展開例を図4のフローに従ってより詳しく説明する。
【0013】
アセンブラソース入力ファイルの内容に「xld reg1, [SYMBOL]」マクロ命令がある(S402)。マクロ命令検出手段は、メモリアクセスをおこなうマクロ命令「xld」を検出する(S403)。この命令はSYMBOLの示すメモリアドレスの内容をレジスタ1に読み込むマクロ命令である。シンボルアドレス定義ファイルに「SYMBOL=0x110」記述が存在する。アドレス計算手段は「SYMBOL」のアドレスが0x110番地であることを、シンボルアドレス定義ファイルの「SYMBOL=0x110」記述の参照によって計算し(S404)マクロ命令展開手段に渡す。マクロ命令展開手段は「SYMBOL」のアドレスのビット数をもとに展開命令数を判断する。16進数0x110は2進数で表現すると「100010000」となり、9ビットの数である。このため「SYMBOL」のアドレスは8ビットより大きく16ビット以下であることを認識し(S405、406)、命令2,命令3、命令4の3命令に展開する(S409)。 この場合、4命令展開が必要だったパターンが3命令展開で済み「xld reg1,[SYMBOL]」マクロ命令の命令コードのコードサイズと、命令実行ステップ数及び命令実行時間を75%削減できる。
【0014】
次にグローバルポインタを使用したメモリアクセスの一例として、メモリの内容をレジスタに読み込む方法を図3を使用し説明する。グローバルポインタとは相対アドレスを基にしたアドレッシングを使えるようにする方式である。命令8のレジスタ8にはグローバルポインタが設定してある。即値拡張命令と組み合わせることによりレジスタ8の値+即値拡張値のアドレスにアクセスが可能になる。
【0015】
では、グローバルポインタを使用した場合のアセンブラマクロ展開例について、図5のフローにしたがってより詳しく説明する。
【0016】
レジスタ8に値0x100をセットしグローバルポインタとして使用する(S502)。アセンブラソース入力ファイルの内容に「xld reg1, [SYMBOL]」命令がある(S503)。マクロ命令検出手段は、メモリアクセスをおこなうマクロ命令「xld」を検出する(S504)。シンボルアドレス定義ファイルに「SYMBOL=0x110」記述が存在する。アドレス計算手段は「SYMBOL」のアドレスが0x110番地であることから、グローバルポインタからの相対アドレスが0x10であることを計算し(0x110−0x100=0x10)、その結果をマクロ命令展開手段に渡す(S505)。マクロ命令展開手段は「SYMBOL」のグローバルポインタ相対アドレスのビット数をもとに展開命令数を判断する(S506,507,508)。16進数0x10は2進数で表現すると「10000」となり5ビットの数である。このため「SYMBOL」のグローバルポインタ相対アドレスが8ビット以下であることを認識し命令7と命令8の2命令に展開する(S511)。
【0017】
この場合、4命令展開が必要だったパターンが2命令展開で済み「xld reg1,[SYMBOL]」マクロ命令の命令コードのコードサイズと、命令実行ステップ数及び命令実行時間を50%削減できる。
【0018】
【発明の効果】
以上、説明したように、本発明により、アセンブラソースにて、メモリアクセスをおこなうマクロ命令がコードサイズと命令実行ステップ数と命令実行時間が最適化された展開形式が出力されるようになる。
【図面の簡単な説明】
【図1】本発明の構成を示す図。
【図2】アセンブラマクロ展開例を示す図。
【図3】グローバルポインタ使用時のアセンブラマクロ展開例を示す図。
【図4】アセンブラマクロ展開フロー図。
【図5】グローバルポインタ使用時のアセンブラマクロ展開フロー図。
Claims (2)
- (a)アセンブラ言語により表現されたアセンブラソースコード列を記憶する記憶手段と、(b)該アセンブラソースコード列に含まれるメモリアクセスをおこなうマクロ命令を検出するマクロ命令検出手段と、(c)該マクロ命令が含むシンボルのシンボルアドレス定義ファイルを記憶するシンボルアドレス定義記憶手段と、(d)該シンボルに対応したシンボルアドレスを、該シンボルアドレス定義記憶手段に記憶された前記シンボルアドレス定義ファイルにより計算するアドレス計算手段と、(e)該計算値に基づいて最小数の命令列に前記マクロ命令を展開し該命令列を出力するマクロ命令展開手段とを有することを特徴とするコード変換装置。
- (a)マクロ命令検出手段が、アセンブラソースコード列を記憶する記憶手段に記憶されたアセンブラソースコード列に含まれるメモリアクセスをおこなうマクロ命令を検出するステップと、(b)アドレス計算手段が、該マクロ命令が含むシンボルに対応したシンボルアドレスを計算するステップと、(c)マクロ命令展開手段が、該計算値に基づいて最小数の命令列に前記マクロ命令を展開するステップと、を含むことによってコード変換を行うことを特徴とするコード変換方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12271397A JP3787951B2 (ja) | 1997-05-13 | 1997-05-13 | コード変換方法及びこれを用いたコード変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12271397A JP3787951B2 (ja) | 1997-05-13 | 1997-05-13 | コード変換方法及びこれを用いたコード変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10312292A JPH10312292A (ja) | 1998-11-24 |
JP3787951B2 true JP3787951B2 (ja) | 2006-06-21 |
Family
ID=14842765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12271397A Expired - Fee Related JP3787951B2 (ja) | 1997-05-13 | 1997-05-13 | コード変換方法及びこれを用いたコード変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3787951B2 (ja) |
-
1997
- 1997-05-13 JP JP12271397A patent/JP3787951B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10312292A (ja) | 1998-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0239081B1 (en) | Pipelined data processor capable of decoding and executing plural instructions in parallel | |
KR920001320A (ko) | 감소된 명령 세트 프로세서에서 내부 레지스터의 데이타를 조정하는 방법 및 장치 | |
JPH1049369A (ja) | データ処理装置 | |
KR940015806A (ko) | 확장가능한 레지스터를 제공하는 데이타 처리 시스템 및 그 방법 | |
JP3787951B2 (ja) | コード変換方法及びこれを用いたコード変換装置 | |
JPH027097B2 (ja) | ||
US5692163A (en) | Process system which generates sets of output data from sets of predetermined input data with duplicate data | |
JP3224050B2 (ja) | 可変長符号復号器、プロセッサ、および可変長符号復号テーブル | |
JP3132566B2 (ja) | 命令先行制御装置 | |
JP3182497B2 (ja) | 演算処理装置および命令変換装置 | |
JPH06162067A (ja) | ベクトル命令制御装置および制御方法 | |
JPH02230320A (ja) | データ処理装置 | |
JP2002522822A (ja) | プロセッサでデータ変換を行う回路装置および方法 | |
JP3269435B2 (ja) | バス・インターフェース・ユニット | |
JP2854301B2 (ja) | メモリアクセス回路 | |
JPH1040165A (ja) | データ読み出し方法およびリードバッファ | |
JPH04116770A (ja) | ベクトルデータ処理装置 | |
JP2845780B2 (ja) | データ転送制御回路 | |
JP2001100991A (ja) | ディジタル信号処理装置 | |
JP2003022180A (ja) | マイクロコンピュータおよびその動作方法 | |
JPH09305398A (ja) | 演算処理装置および命令変換装置 | |
JPH04245333A (ja) | 情報処理装置 | |
JPH07202635A (ja) | デジタル信号処理装置 | |
JPH08171488A (ja) | データアドレス制御回路 | |
JPH0477349B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060320 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090407 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140407 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |