JPH0520089A - アセンブリ方式 - Google Patents

アセンブリ方式

Info

Publication number
JPH0520089A
JPH0520089A JP1772691A JP1772691A JPH0520089A JP H0520089 A JPH0520089 A JP H0520089A JP 1772691 A JP1772691 A JP 1772691A JP 1772691 A JP1772691 A JP 1772691A JP H0520089 A JPH0520089 A JP H0520089A
Authority
JP
Japan
Prior art keywords
register
real
virtual
registers
virtual register
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
Application number
JP1772691A
Other languages
English (en)
Inventor
Hideaki Kogure
秀明 小暮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP1772691A priority Critical patent/JPH0520089A/ja
Publication of JPH0520089A publication Critical patent/JPH0520089A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 アセンブリ処理時にオペレータにかかる負担
を軽減して、バグの発生を防止するとともに、プログラ
ミングに要する時間を短縮すること。 【構成】 処理装置のメモリには、アセンブリ処理に使
用すべき実レジスタの使用状況を表す実レジスタテーブ
ルT0,T1と、前記実レジスタに対する仮想レジスタ
の使用状況を表す仮想レジスタテーブルT100,T1
01,102とを設定しておき、アセンブラ命令でレジ
スタが指定された場合には、仮想レジスタテーブルT1
00,T101,T102を前記処理装置に検索させ
て、仮想レジスタテーブルT100,T101,T10
2に記述されている情報に基づいて実レジスタの使用状
況を確認させ、使用する実レジスタの割り当てや、実レ
ジスタに既設定のレジスタ値の退避や復旧といった処理
を前記処理装置に実行させる。

Description

【発明の詳細な説明】
【0001】
【産業業上の利用分野】この発明は、アセンブリ方式に
関するものである。
【0002】
【従来の技術】アセンブリ処理を実行する従来の処理装
置では、アセンブリ処理時に使用し得るレジスタ(例え
ば、アセンブラ命令中のオペランドとして使用できるレ
ジスタ)が実レジスタのみであり、コーディング作業時
には、オペレータ自身が逐次レジスタの割り当てや退避
を指示しなければならなかった。
【0003】
【発明が解決しようとする課題】しかし、レジスタの割
り当てや退避の指示は、複雑な作業であり、しかも、常
にレジスタの使用状況を正確に把握しておかねばならな
いため、これをオペレータ自身が行わなければならない
従来においては、オペレータにかかる負担が大きく、プ
ログラミングに要する時間が長引くとともに、バグ発生
の大きな要因となっていた。
【0004】本発明は、前記事情に鑑みてなされたもの
で、アセンブリ処理時におけるレジスタ割り当てや退避
といった作業を自動化して、オペレータにかかる負担を
軽減して、バグの発生を防止するとともに、プログラミ
ングに要する時間を短縮することのできるアセンブリ方
式を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明に係るアセンブリ
方式では、アセンブリ処理を実行する処理装置のメモリ
には、当該処理装置内のアセンブリ処理に使用すべき実
レジスタの使用状況を表す実レジスタテーブルと、前記
実レジスタに対する仮想レジスタの使用状況を表す仮想
レジスタテーブルとを設定しておく。
【0006】しかも、前記仮想レジスタテーブルには、
対応する実レジスタを書き込む実レジスタ情報欄と、退
避領域のアドレス値を書き込む退避アドレス情報欄とを
装備し、また、前記実レジスタテーブルには、対応する
仮想レジスタを書き込む仮想レジスタ情報欄と、その実
レジスタの使用頻度を書き込む使用頻度情報欄とを装備
しておく。
【0007】そして、アセンブラ命令でレジスタが指定
された場合には、仮想レジスタテーブルを前記処理装置
に検索させて、仮想レジスタテーブルに記述されている
情報に基づいて実レジスタの使用状況を確認させ、使用
する実レジスタの割り当てや、実レジスタに既設定のレ
ジスタ値の退避や復旧といった処理を前記処理装置に実
行させる。
【0008】
【作用】本発明に係るアセンブリ方式では、アセンブラ
命令でレジスタが指定された場合には、処理装置のメモ
リに設定しておいた仮想レジスタテーブルを前記処理装
置に検索させて、仮想レジスタテーブルに記述されてい
る情報に基づいて実レジスタの使用状況を確認させ、使
用する実レジスタの割り当てや、実レジスタに既設定の
レジスタ値の退避や復旧といった処理を前記処理装置に
実行させるため、アセンブリ処理時にオペレータ自身が
レジスタ割り当てやレジスタ値の退避や復旧といった作
業を行う必要がなく、アセンブリ処理時にオペレータに
かかる負担を軽減して、バグの発生を防止するととも
に、プログラミングに要する時間を短縮することができ
る。
【0009】
【実施例】本発明に係るアセンブリ方式では、予め、ア
センブリ処理用の処理装置に、アセンブリ処理時に使用
することのできる仮想レジスタを設定しておいて、アセ
ンブリ処理時には、図1に示す手順で、仮想レジスタを
利用して実レジスタの割り当てや、レジスタ値の退避や
復旧といった処理を処理装置に実行させるものである。
前記処理装置のメモリ上には、処理装置内の各実レジス
タの使用状況を表すための実レジスタテーブルと、設定
した各仮想レジスタの使用状況を表すための仮想レジス
タテーブルとを作成して、それぞれのレジスタテーブル
内の記述によって、各実レジスタと仮想レジスタとを対
応付けする。
【0010】図2は、処理装置のメモリに作成された仮
想レジスタテーブルと実レジスタテーブルとの関係を示
したものである。図中の符号T100,T101,T1
02は仮想レジスタテーブルで、それぞれ仮想レジスタ
R100,R101,R102に対するものである。ま
た、符号T0,T1は実レジスタテーブルで、それぞれ
実レジスタR0,R1に対するものである。
【0011】図示のように、仮想レジスタテーブルT1
00,T101,T102には、次の仮想レジスタテー
ブルを指示する次テーブル情報欄J1と、このテーブル
の仮想レジスタの番号が表示される仮想レジスタ番号欄
J2と、退避領域MAにおけるレジスタ値の格納場所が
書き込まれる退避アドレス情報欄J3と、対応する実レ
ジスタの番号が書き込まれる実レジスタ情報欄J4とを
装備している。なお、この一実施例では、作成した仮想
レジスタテーブル内の先頭のものおよび最終のものは、
それぞれ先頭ポインタP1,P2で指示しており、仮想
レジスタテーブルを検索する必要が生じた場合には、前
記先頭ポインタP1で指示されたものから検索を開始
し、以後、前記次テーブル情報欄J1の情報に基づいて
最終のテーブルまで順に検索するものとしている。
【0012】一方、実レジスタテーブルT0,T1に
は、このテーブルの実レジスタの番号が表示される実レ
ジスタ番号欄j1と、この実レジスタの使用頻度が書き
込まれる使用頻度情報欄j2と、その実レジスタに割り
当てられた仮想レジスタの番号が書き込まれる仮想レジ
スタ情報欄j3とを装備している。
【0013】次に、前記一実施例のアセンブリ方式の特
徴である実レジスタの割り当て処理を、図1に基づいて
説明する。
【0014】この実レジスタの割り当て処理は、アセン
ブラ命令でレジスタが指定された場合に処理装置が実行
する処理で、アセンブラ命令でレジスタが指定された
ら、まず、メモリに登録済みの仮想レジスタテーブルを
検索して登録済みであるか否かを判断し、未登録であれ
ば、新規に仮想レジスタテーブルを作成し登録する(ス
テップS1,S2,S3)。
【0015】なお、この一実施例の場合、仮想レジスタ
テーブルの検索方法は、前述したように、先頭ポインタ
P1で指示されたものから検索を開始し、以後、前記次
テーブル情報欄J1の情報に基づいて最終のテーブルま
で順にチェックしていく方法であるが、アセンブリに使
用するレジスタ数が多く、登録する仮想レジスタテーブ
ルの数が多数に及ぶ場合には、ハッシュ表等を使った効
率的な検索を行うこととする。
【0016】次いで、検索によって得た仮想レジスタテ
ーブルに、対応する実レジスタが登録されているか否か
を判断し(ステップS4)する。そして、仮想レジスタ
テーブルに実レジスタが登録されていない場合には、実
レジスタテーブルを検索して使用する実レジスタを選定
する(ステップS5)。なお、ステップS5において選
定する実レジスタは、アセンブラ命令で指定されたレジ
スタが実レジスタのときにはその指定されたものとする
が、アセンブラ命令で指定されたレジスタが仮想レジス
タのときには、存在する各実レジスタテーブルの記述に
基づいて、空いているもの(または、使用頻度が最も低
いもの)とする。
【0017】次いで、使用する実レジスタを選定したな
ら、その実レジスタテーブルに仮想レジスタが登録され
ているか否かを判断し、登録されているなら指定された
仮想レジスタであるか否かを確認する(ステップS
6)。
【0018】そして、指定以外の仮想レジスタが登録さ
れている場合には、まず、その実レジスタを解放する
(ステップS7)。ここに、解放とは、その実レジスタ
から退避領域MAにストア命令を出力して、その実レジ
スタテーブルに登録されている仮想レジスタのレジスタ
値を退避領域MAの所定のアドレスにストアさせた後
に、その実レジスタテーブルに登録されていた仮想レジ
スタをはずすことをいう。そして、解放した場合には、
その実レジスタテーブル上の使用頻度情報欄j2の値を
0に初期化する。なお、仮想レジスタを退避領域MAに
退避させる場合のアドレスは、仮想レジスタテーブルの
退避アドレス情報欄J3によるが、この情報欄にアドレ
ス値が未登録のときには、そのアドレス値を決定してか
ら、解放処理を行う。
【0019】前述のステップS6で、選定した実レジス
タのテーブルに登録されている仮想レジスタが指定のも
のであったとき、その仮想レジスタのテーブルの記述を
確認する。そして、その仮想レジスタテーブルに実レジ
スタが登録されておらず、退避アドレスが登録されてい
れば、その退避アドレスに基づいて退避領域から選定し
た実レジスタにロード命令を出力してレジスタ値の復旧
を行い(ステップS8)、選定した実レジスタを割り当
てるレジスタとして仮想レジスタテーブルに登録して一
連の割り当て処理を終了する。
【0020】なお、前記ステップS9における処理で
は、実レジスタを仮想レジスタテーブル上へ登録する一
方で、登録した実レジスタの実レジスタテーブル上の使
用頻度情報欄j2の値を一つインクリメントする。
【0021】図3は、前記一実施例による実レジスタの
割り当て処理を、プログラムの具体例とともに示したマ
ップ図である。なお、この具体例では、処理装置上の使
用可能な実レジスタはR0,R1で、メモリに設定した
仮想レジスタは、R100,101としている。また、
図3において、左側の欄はプログラムの命令を示し、右
側の欄は一実施例によって割り当てた実レジスタの動作
を示している。命令は、からまでの五つで、は実
レジスタR0を指定してのフレームポインタ値0番地へ
のロード命令、は仮想レジスタR100を指定しての
フレームポインタ値4番地へのロード命令、は仮想レ
ジスタR100を指定してのフレームポインタ値8番地
へのストア(退避)命令、は仮想レジスタR101を
指定してのフレームポインタ値12番地へのロード命
令、は実レジスタR0を指定してのフレームポインタ
値0番地へのストア命令である。
【0022】この一実施例では、前述の図1の処理によ
って、の命令に対しては実レジスタR0を割り当てて
フレームポインタ値0番地へのロードを行い、の命令
に対しては実レジスタR1を割り当ててフレームポイン
タ値4番地へのロードを行い、の命令に対しては実レ
ジスタ1を割り当ててフレームポインタ値8番地へのス
トア(退避)を行う。そして、の命令に対しては、ま
ず、実レジスタR0のレジスタ値をスタックポインタ値
0番地にストアし、続いて、この実レジスタR0を割り
当ててフレームポインタ値12番地へのロードを行う。
の命令に対しては、まず実レジスタR0のレジスタ値
をスタックポインタ値12番地にストアし、続いて実レ
ジスタR0に退避させておいたスタックポインタ値0番
地のレジスタ値を復旧させ、続いて、その実レジスタR
0を割り当てて、フレームポインタ値0番地へのストア
を行う。
【0023】以上に詳述したように、この一実施例で
は、アセンブラ命令でレジスタが指定された場合には、
処理装置のメモリに設定しておいた仮想レジスタテーブ
ルを前記処理装置に検索させて、仮想レジスタテーブル
に記述されている情報に基づいて実レジスタの使用状況
を確認させ、使用する実レジスタの割り当てや、実レジ
スタに既設定のレジスタ値の退避や復旧といった処理を
前記処理装置に実行させるため、アセンブリ処理時にオ
ペレータ自身がレジスタ割り当てやレジスタ値の退避や
復旧といった作業を行う必要がなく、アセンブリ処理時
にオペレータにかかる負担を軽減して、バグの発生を防
止するとともに、アセンブリ処理に要する時間を短縮す
ることができる。
【0024】なお、本発明のアセンブリ方式は、オペラ
ンド解析に限らず、レジスタの割り当てが必要となるア
センブリ処理全般に利用することができることは言うま
でもない。
【0025】
【発明の効果】以上の説明から明らかなように、本発明
に係るアセンブリ方式では、アセンブラ命令でレジスタ
が指定された場合には、処理装置のメモリに設定してお
いた仮想レジスタテーブルを前記処理装置に検索させ
て、仮想レジスタテーブルに記述されている情報に基づ
いて実レジスタの使用状況を確認させ、使用する実レジ
スタの割り当てや、実レジスタに既設定のレジスタ値の
退避や復旧といった処理を前記処理装置に実行させるた
め、アセンブリ処理時にオペレータ自身がレジスタ割り
当てやレジスタ値の退避や復旧といった作業を行う必要
がなく、アセンブリ処理時にオペレータにかかる負担を
軽減して、バグの発生を防止するとともに、プログラミ
ングに要する時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の一実施例におけるレジスタ割り当て処
理の説明図である。
【図2】本発明の一実施例におけるレジスタテーブルの
説明図である。
【図3】具体例を使った一実施例の作用説明図である。
【符号の説明】
R0 実レジスタ R1 実レジスタ R100 仮想レジスタ R101 仮想レジスタ T0 実レジスタテーブル T1 実レジスタテーブル T100 仮想レジスタテーブル T101 仮想レジスタテーブル J1 次テーブル情報欄 J2 仮想レジスタ番号欄 J3 退避アドレス情報欄 J4 実レジスタ情報欄 j1 実レジスタ番号欄 j2 使用頻度情報欄 j3 仮想レジスタ情報欄

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 アセンブリ処理を実行する処理装置のメ
    モリには、当該処理装置内のアセンブリ処理に使用すべ
    き実レジスタの使用状況を表す実レジスタテーブルと、
    前記実レジスタに対する仮想レジスタの使用状況を表す
    仮想レジスタテーブルとを設定しておき、 しかも、前記仮想レジスタテーブルには、対応する実レ
    ジスタを書き込む実レジスタ情報欄と、退避領域のアド
    レス値を書き込む退避アドレス情報欄とを装備し、ま
    た、前記実レジスタテーブルには、対応する仮想レジス
    タを書き込む仮想レジスタ情報欄と、その実レジスタの
    使用頻度を書き込む使用頻度情報欄とを装備しておき、 アセンブラ命令でレジスタが指定された場合には、仮想
    レジスタテーブルを前記処理装置に検索させて、仮想レ
    ジスタテーブルに記述されている情報に基づいて実レジ
    スタの使用状況を確認させ、使用する実レジスタの割り
    当てや、実レジスタに既設定のレジスタ値の退避や復旧
    といった処理を前記処理装置に実行させることを特徴と
    したアセンブリ方式。
JP1772691A 1991-02-08 1991-02-08 アセンブリ方式 Pending JPH0520089A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1772691A JPH0520089A (ja) 1991-02-08 1991-02-08 アセンブリ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1772691A JPH0520089A (ja) 1991-02-08 1991-02-08 アセンブリ方式

Publications (1)

Publication Number Publication Date
JPH0520089A true JPH0520089A (ja) 1993-01-29

Family

ID=11951752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1772691A Pending JPH0520089A (ja) 1991-02-08 1991-02-08 アセンブリ方式

Country Status (1)

Country Link
JP (1) JPH0520089A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542185B2 (en) 2013-07-19 2017-01-10 International Business Machines Corporation Allocation method, apparatus, and program for managing architectural registers and physical registers using mapping tables

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542185B2 (en) 2013-07-19 2017-01-10 International Business Machines Corporation Allocation method, apparatus, and program for managing architectural registers and physical registers using mapping tables
US9891925B2 (en) 2013-07-19 2018-02-13 International Business Machines Corporation Allocation method, apparatus, and program for managing architectural registers and physical registers using mapping tables

Similar Documents

Publication Publication Date Title
JPH0520089A (ja) アセンブリ方式
US6311266B1 (en) Instruction look-ahead system and hardware
JPS5835648A (ja) プログラム実行制御方式
JP2504151B2 (ja) デ―タ処理装置
JPS59106017A (ja) 入出力制御装置の制御メモリの内容を検査する方法
JPH07152574A (ja) プログラムローディング方式
JP2845694B2 (ja) データ処理装置
JP3399741B2 (ja) ダンプデータの表示方法及び障害解析システム
JPH08235029A (ja) システム障害情報保存方法
JPH0689299A (ja) 自動入力画面設定方式
JPH05143422A (ja) 更新後ジヤーナル管理方式
JPH02100146A (ja) トレース決定方式
JPH0844570A (ja) プログラム実行システム及び方法
JPH021034A (ja) プログラム制御方式
JPH03252826A (ja) テストデータ処理方式
JPH02235150A (ja) 情報処理装置
JPS5933564A (ja) 外部記憶装置のアクセスアドレスの表示方式
JPH0421028A (ja) レジスタ管理方法
JPS61202239A (ja) 情報処理装置
JPS61235925A (ja) 電子計算機システムの運用方式
JPH03282636A (ja) テストパッケージ実行のためのデータ保存方法
JPS6393049A (ja) プログラム・デバツグ装置
JPS5968067A (ja) 走行ステツプ数指定処理方式
JPH08106381A (ja) プログラムの評価試験方法
JPH09167104A (ja) メモリ非共有型システムのデバッグ装置