JPH0512032A - アセンブラ作成装置 - Google Patents

アセンブラ作成装置

Info

Publication number
JPH0512032A
JPH0512032A JP16451991A JP16451991A JPH0512032A JP H0512032 A JPH0512032 A JP H0512032A JP 16451991 A JP16451991 A JP 16451991A JP 16451991 A JP16451991 A JP 16451991A JP H0512032 A JPH0512032 A JP H0512032A
Authority
JP
Japan
Prior art keywords
branch instruction
variable
information table
branch
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.)
Granted
Application number
JP16451991A
Other languages
English (en)
Other versions
JP3036900B2 (ja
Inventor
Naoki Hattori
直樹 服部
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.)
NEC IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP3164519A priority Critical patent/JP3036900B2/ja
Publication of JPH0512032A publication Critical patent/JPH0512032A/ja
Application granted granted Critical
Publication of JP3036900B2 publication Critical patent/JP3036900B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 分岐命令の最適化処理時間の短縮化を図った
アセンブラ作成装置を提供する。 【構成】 分岐命令がソースプログラムファイル1に出
現する度に分岐命令の情報を持ちかつそのアドレスの大
きい順にチェインでつないだ双方向分岐命令情報テーブ
ル5aを作成し記憶装置4に格納する双方向分岐命令情
報テーブル作成手段21aと、双方向分岐命令情報テー
ブル5aを基に、分岐命令のアドレスの大きい順と小さ
い順とに交互に分岐命令の最適化処理を行う双方向最適
化処理手段22aとを備える。 【効果】 連続した前方参照の分岐命令が複数個存在す
る場合に、従来は個数分の回数の最適化処理が必要とさ
れるのに対し、個数に関係なく2回の最適化処理で済ま
すことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラム作成装置に
利用され、特に、アセンブラの分岐命令の最適化処理方
式に関する。
【0002】
【従来の技術】図8は従来のアセンブラ作成装置の一例
を示すブロック構成図、および図9(a)および(b)
はその分岐命令情報テーブルの一例を示す説明図であ
る。
【0003】本従来例のアセンブラ作成装置2は、ソー
スプログラムファイル1を入力し解析を行い分岐命令が
出現する度に分岐命令の情報を持つ分岐命令情報テーブ
ル5を作成し記憶装置4に格納する分岐命令情報テーブ
ル作成手段21と、この作成された分岐命令情報テーブ
ル5を基にアドレスの小さい順にチェインでつなぎ分岐
命令を最も短いオブジェクトコードに対応させる最適化
処理手段22と、この最適化されたオブジェクトコード
によりオブジェクトモジュールファイル3を生成出力す
るオブジェクト生成処理手段23とを備えている。
【0004】そして、分岐命令情報テーブル5は、図9
(b)に示すように、次のテーブルを指すチェインポイ
ンタ(変数next)440と、分岐命令のアドレス
(変数add)442と、シンボルテーブルを指すチェ
インポインタ(変数symp)443と、コード増加量
(変数code)444とを含んでいる。なお、図9
(a)において、430〜439はおのおのの分岐命令
情報テーブル、400、401、420〜429はチェ
インポインタである。
【0005】次に、本従来例の動作について図10、図
11、図12および図13を参照して説明する。ここ
で、図10は本従来例の全体の動作を示す流れ図、図1
1は図10の分岐命令情報テーブル作成処理の一例を示
す流れ図、図12は図10の最適化処理の一例の前半部
分を示す流れ図、および図13は図10の最適化処理の
一例の後半部分を示す流れ図である。なお、ここで作成
するアセンブラは、前方参照のときは分岐命令から分岐
命令の飛び先までのバイト数が127バイト以下であれ
ば2バイト分の分岐命令を生成し、128バイト以上で
あれば3バイト分の分岐命令を生成し、後方参照のとき
は分岐命令から分岐命令の飛び先までのバイト数の絶対
値128バイト以下であれば2バイト分の分岐命令を生
成し、絶対値129バイト以上であれば3バイト分の分
岐命令を生成するアセンブラであるとする。
【0006】図10で、パス1:ソース解析処理105
で行の解析結果が分岐命令であったら、図11の処理で
分岐命令の情報を分岐命令情報テーブル5に設定する。
図11において、分岐命令のアドレスセット処理200
で分岐命令の次のアドレスを現在処理している分岐命令
情報テーブルにある変数addに代入する。シンボルテ
ーブルのアドレスセット処理201でシンボルテーブル
のアドレスを現在処理している分岐命令情報テーブルに
ある変数sympに代入する。コード増加量セット処理
202で2バイト分の分岐命令を生成するか3バイト分
の分岐命令を生成するか未確定であることを示すコード
増加量の初期値として「1」を現在処理している分岐命
令情報テーブルにある変数codeに代入する。次のテ
ーブルのアドレスセット処理203で次の分岐命令情報
テーブルを作成し、作成した次の分岐命令情報テーブル
のアドレスを変数nextに代入する。現在のテーブル
のアドレスセット処理205で現在処理中の分岐命令情
報テーブルのアドレスを最後の分岐命令情報テーブルを
指す変数btmに代入する。
【0007】図10のパス1:ソース解析処理105を
ファイルの最後まで行い、終了後分岐命令の最適化をす
る最適化処理106を行う。最適化処理106では図1
2において、先頭アドレス代入処理301で図9(a)
で示される分岐命令情報テーブルの先頭を指すチェイン
ポインタ400を変数cpに代入し、図12のフラグ初
期化処理305において分岐命令が2バイト分または3
バイト分に確定したことを表す変数flagに初期値と
して「0」を代入する。増加量判別処理306により変
数cpの指す分岐命令情報テーブルの分岐命令が2バイ
ト分の分岐命令かまたは3バイト分の分岐命令に確定し
ているかを判別し、確定していれば図13の分岐命令情
報テーブル判別処理320へ進む。確定していなければ
図12の分岐命令までの増加量算出処理307によりフ
ァイルの先頭から変数cpの指す分岐命令情報テーブル
の分岐命令までにいくつ図10の最適化処理106の対
象となる分岐命令があるか算出し、算出した分岐命令の
数を変数Aに代入する。図12の飛び先までの増加量算
出処理308によりファイルの先頭から変数cpの指す
分岐命令情報テーブルの分岐命令の飛び先までにいくつ
図10の最適化処理106の対象となる分岐命令がある
か算出し、算出した分岐命令の数を変数Bに代入する。
図12の相対アドレス代入処理309により変数cpの
指す分岐命令情報テーブルの分岐命令の飛び先のアドレ
スから変数cpの指す分岐命令情報テーブルの分岐命令
のアドレスを減算し、変数mrlに代入する。
【0008】そして、シンボル参照判別処理310によ
り変数cpの指す分岐命令情報テーブルの分岐命令が前
方参照であるか後方参照であるかを判別する。変数mr
lが「0」以下であれば後方参照であり、「1」以上で
あれば前方参照である。シンボル参照判別処理310の
結果、前方参照の場合は、相対値を変数minrにセッ
ト処理311により変数mrlを変数minrに代入
し、コード増加量と相対値をmaxrにセット処理31
2により変数mrlと変数Bを加算し、加算した結果か
ら変数Aを減算した結果を変数maxrに代入する。後
方参照の場合は、相対値をmaxrにセット処理313
により変数mrlを変数maxrに代入し、コード増加
量と相対値をminrにセット処理314により変数m
rlと変数Bを加算し、加算した結果から変数Aを減算
した結果を変数minrに代入する。
【0009】次に、図13の2バイト分の分岐命令出力
判別処理315と3バイト分の分岐命令出力判別処理3
16により2バイト分の分岐命令を生成するか3バイト
分の分岐命令を生成するかの判別を行い、3バイト分の
分岐命令を生成する必要がある場合は、分岐命令のアド
レス補正処理317により現在処理している分岐命令情
報テーブルの次の分岐命令情報テーブルから変数btm
が指す分岐命令情報テーブルに格納されている分岐命令
のアドレスに「1」加算する。フラグセット処理318
で分岐命令が2バイト分または3バイト分に確定したこ
とを表す変数flagに「1」を代入する。2バイト分
の分岐命令を生成することに確定した場合も同様に変数
flagに「1」を代入する。さらに、コード増加量セ
ット処理319により変数cpの指す分岐命令情報テー
ブルの分岐命令が2バイト分または3バイト分に確定し
たことを表す変数codeに「0」を代入する。変数c
pの指す分岐命令情報テーブルの分岐命令と変数cpの
指す分岐命令情報テーブルの分岐命令の飛び先の間に2
バイト分の分岐命令になるかまたは3バイト分の分岐命
令になるか不確定な分岐命令がありかつ不確定な分岐命
令がすべて2バイト分の分岐命令となったときは、変数
cpの指す分岐命令情報テーブルの分岐命令が2バイト
分の分岐命令になる場合、または不確定な分岐命令がす
べて3バイト分の分岐命令となったときは、変数cpの
指す分岐命令情報テーブルの分岐命令が3バイト分の分
岐命令になる場合は、分岐命令情報テーブル判別処理3
20へ進む。
【0010】分岐命令情報テーブル判別処理320で
は、変数cpの指す分岐命令情報テーブルの次の分岐命
令情報テーブルがあるか判別し、ある場合ポインタイン
クリメント処理321により変数cpに分岐命令情報テ
ーブルのサイズ分を加算し、変数cpが次の分岐命令情
報テーブルを指すようにして図12の増加量判別処理3
06へ進む。次の分岐命令情報テーブルがない場合は、
図13のフラグ判別処理322により分岐命令が2バイ
ト分または3バイト分に確定したことを表す変数fla
gが「0」であるか判別し、「1」であればまだ最適化
できる可能性があるので図12の先頭アドレス代入処理
301に戻る。変数flagが「0」の場合は、図13
のシンボルテーブル補正処理323へ進み、シンボルテ
ーブルの補正処理を行う。
【0011】次に、分岐命令の最適化処理を図7で示す
ソースプログラムファイル1を入力した場合について説
明する。このとき、図9(a)で示す分岐命令情報テー
ブルを作成する。ただし、図7において、分岐命令が2
バイト分の分岐命令である場合の分岐命令から分岐命令
の飛び先までのバイト数(飛び先のアドレス−分岐命令
のアドレス)は、(1) Dへ分岐する分岐命令(以
下、分岐命令(1)という。)510から飛び先D(以
下、飛び先(1)という。)520まで127バイト、
(2) Cへ分岐する分岐命令(以下、分岐命令(2)
という。)511から飛び先C(以下、飛び先(2)と
いう。)521まで127バイト、(3) Bへ分岐す
る分岐命令(以下、分岐命令(3)という。)512か
ら飛び先B(以下、飛び先(3)という。)522まで
127バイト、(4) Aへ分岐する分岐命令(以下、
分岐命令(4)という。)513から飛び先A(以下、
飛び先(4)という。)523まで120バイト、
(5) Hへ分岐する分岐命令(以下、分岐命令(5)
という。)514から飛び先H(以下、飛び先(5)と
いう。)524まで−128バイト、(6) Gへ分岐
する分岐命令(以下、分岐命令(6)という。)515
から飛び先G(以下、飛び先(6)という。)525ま
で−128バイト、(7) Fへ分岐する分岐命令(以
下、分岐命令(7)という。)516から飛び先F(以
下、飛び先(7)という。)526まで−128バイ
ト、(8) Eへ分岐する分岐命令(以下、分岐命令
(8)という。)517から飛び先E(以下、飛び先
(8)という。)527まで−120バイト、(9)
Jへ分岐する分岐命令(以下、分岐命令(9)とい
う。)518から飛び先J(以下、飛び先(9)とい
う。)528まで127バイト、(10) Iへ分岐す
る分岐命令(以下、分岐命令(10)という。)519
から飛び先I(以下、飛び先(10)という。)529
まで−128バイト、とする。
【0012】図7のソースプログラムファイル1を入力
し、図10のパス1ソース解析処理105で行の解析を
した結果、図7の分岐命令(1)510が出現したら、
図11の処理で分岐命令の情報を図11の分岐命令情報
テーブル5に設定する。図11の分岐命令のアドレスセ
ット処理200で図7の分岐命令(1)510の次のア
ドレスを図9(a)の分岐命令(1)の分岐命令情報テ
ーブル430が持つ変数addに代入する。図11のシ
ンボルテーブルのアドレスセット処理201で図7の飛
び先(1)520のシンボルテーブルのアドレスを図9
(a)の分岐命令(1)の分岐命令情報テーブル430
が持つ変数sympに代入する。図11のコード増加量
セット処理202で2バイト分の分岐命令を生成するか
3バイト分の分岐命令を生成するか未確定であることを
示す「1」をコード増加量の初期値として図9(a)の
分岐命令(1)の分岐命令情報テーブル430が持つ変
数codeに代入する。図11の次のテーブルのアドレ
スセット処理203で次の分岐命令情報テーブルを作成
し、作成した次の分岐命令情報テーブルのアドレスを図
9(a)の分岐命令(1)の分岐命令情報テーブル43
0が持つ変数nextに代入する。図11のアドレスセ
ット処理205で図9(a)の分岐命令(1)の分岐命
令情報テーブル430のアドレスを最後の分岐命令情報
テーブルを指す変数btmに代入する。これで図9
(a)の分岐命令(1)の分岐命令情報テーブル430
が作成される。
【0013】以下同じように、図7の分岐命令(2)5
11、分岐命令(3)512、分岐命令(4)513、
分岐命令(5)514、分岐命令(6)515、分岐命
令(7)516、分岐命令(8)517、分岐命令
(9)518、および分岐命令(10)519について
行い、各々の分岐命令情報テーブル431〜439を作
成する。終了後分岐命令の最適化をする図10の最適化
処理106を行う。
【0014】次に、この最適化処理について説明する。
【0015】図10の最適化処理106では、図12の
先頭アドレス代入処理301において分岐命令情報テー
ブルの先頭を指す図9(a)の先頭を指すチェインポイ
ンタ400すなわちtopを変数cpに代入し、図12
のフラグ初期化処理305において分岐命令が2バイト
分または3バイト分に確定したことを表す変数flag
に初期値として「0」を代入する。増加量判別処理30
6により変数cpの指す分岐命令情報テーブルの図7の
分岐命令(1)510が2バイト分の分岐命令かまたは
3バイト分の分岐命令に確定しているかを判別する。こ
の場合、確定していないので、図12の分岐命令までの
増加量算出処理307によりファイルの先頭から変数c
pの指す分岐命令情報テーブルの図7の分岐命令(1)
510までいくつ図10の最適化処理106の対象とな
る分岐命令が存在するか算出し、算出した分岐命令の数
を変数Aに代入する。この場合、自分自身の図7の分岐
命令(1)510のみなので「1」を変数Aに代入す
る。図12の飛び先までの増加量算出処理308により
ファイルの先頭から変数cpの指す分岐命令情報テーブ
ルの図7の分岐命令(1)510の飛び先である図7の
飛び先(D)(1)520までにいくつ図10の最適化
処理106の対象となる分岐命令が存在するか算出し、
算出した分岐命令の数を変数Bに代入する。この場合、
図7の分岐命令(1)510、分岐命令(2)511、
分岐命令(3)512および分岐命令(4)513の4
個なので「4」を変数Bに代入する。図12の相対アド
レス代入処理309により、変数cpの指す分岐命令情
報テーブルの図7の分岐命令(1)510の飛び先であ
る飛び先(1)520のアドレスから変数cpの指す分
岐命令情報テーブルの分岐命令(1)510のアドレス
を減算し、変数mrlに代入する。この場合、127バ
イトなので「127」を変数mrlに代入する。そし
て、図12のシンボル参照判別処理310により変数c
pの指す分岐命令情報テーブルの図7の分岐命令(1)
510が前方参照であるか後方参照であるか判別する。
この場合、前方参照なので、図12の相対値を変数mi
nrにセット処理311により変数mrlを変数min
rに代入し、コード増加量と相対値を変数maxrにセ
ット処理312により変数mrlと変数Bを加算し、加
算した結果から変数Aを減算した結果を変数maxrに
代入する。この場合、変数minrに「127」が代入
され、変数maxrに「130」が代入される。
【0016】次に、図13の2バイト分の分岐命令出力
判別処理315と3バイト分の分岐命令出力判別316
により、2バイト分の分岐命令を生成するか3バイト分
の分岐命令を生成するかの判別を行う。この場合、変数
maxrが「130」であるため2バイト分の分岐命令
出力判別処理315の条件が成り立たず、3バイト分の
分岐命令出力判別処理316へ進む。変数maxrが
「130」、変数minrが「127」であるため3バ
イト分の分岐命令出力判別処理316の条件は成り立
ち、2バイト分の分岐命令を生成するか3バイト分の分
岐命令を生成するか確定しないので分岐命令情報テーブ
ル判別処理320へ進む。分岐命令情報テーブル判別処
理320では、変数cpの指す分岐命令情報テーブルの
次の分岐命令情報テーブルが存在するか判別する。この
場合は次の分岐命令情報テーブルが存在するのでポイン
タインクリメント処理321へ進み、変数cpに分岐命
令情報テーブルのサイズ分を加算し、変数cpが次の分
岐命令情報テーブルを指すようにして図12の増加量判
別処理306へ進み、図7の分岐命令(2)511およ
び分岐命令(3)512に対して分岐命令(1)510
と同様の処理を行う。分岐命令(2)511および分岐
命令(3)512も分岐命令(1)510と同様に2バ
イト分の分岐命令を生成するか3バイト分の分岐命令を
生成するか確定しない。
【0017】次に、分岐命令(4)513の処理を行
う。図12の増加量判別処理306により変数cpの指
す分岐命令情報テーブルの図7の分岐命令(4)513
が2バイト分の分岐命令かまたは3バイト分の分岐命令
に確定しているかを判別する。この場合、確定していな
いので図12の分岐命令までの増加量算出処理307に
より、ファイルの先頭から変数cpの指す分岐命令情報
テーブルの図7の分岐命令(4)513までにいくつ図
10の最適化処理106の対象となる分岐命令が存在す
るか算出し、算出した分岐命令の数を変数Aに代入す
る。この場合、図7の分岐命令(1)510、分岐命令
(2)511、分岐命令(3)512および分岐命令
(4)513の4個なので「4」を変数Aに代入する。
図12の飛び先までの増加量算出処理308により、フ
ァイルの先頭から変数cpの指す分岐命令情報テーブル
の図7の分岐命令(4)513の飛び先である飛び先
(A)(4)523までにいくつ図10の最適化処理1
06の対象となる分岐命令が存在するか算出し、算出し
た分岐命令の数を変数Bにする。この場合、図7の分岐
命令(1)510、分岐命令(2)511、分岐命令
(3)512および分岐命令(4)513の4個なの
で、「4」を変数Bに代入する。
【0018】図12の相対アドレス代入処理309によ
り、変数cpの指す分岐命令情報テーブルの図7の分岐
命令命令(4)513の飛び先である飛び先(4)52
3のアドレスから変数cpの指す分岐命令情報テーブル
の分岐命令(4)513のアドレスを減算し、変数mr
lに代入する。この場合、120バイトなので「12
0」を変数mrlに代入し、図12のシンボル参照判別
処理310により、変数cpの指す分岐命令情報テーブ
ルの図7の分岐命令(4)513が前方参照であるか後
方参照であるか判別する。この場合、前方参照なので図
12の算出量セット処理(1)311により、変数mr
lを変数minrに代入し、コード増加量と相対値を変
数maxrにセット処理312により、変数mrlと変
数Bを加算し、加算した結果から変数Aを減算した結果
を変数maxrに代入する。この場合、変数minrに
「120」が代入され、変数maxrに「120」が代
入される。
【0019】次に、図13の2バイト分の分岐命令出力
判別処理315と3バイト分の分岐命令出力判別処理3
16により、2バイト分の分岐命令を生成するか3バイ
ト分の分岐命令を生成するかの判別を行う。この場合、
変数minrと変数maxrが共に「120」であるた
め2バイト分の分岐命令出力判別処理315の条件が成
り立ち、フラグセット処理318へ進む。フラグセット
処理318では図7の分岐命令(4)513が2バイト
分の分岐命令を生成することに確定したので、2バイト
分または3バイト分に確定したことを表す変数flag
に「1」を代入する。さらに、図13のコード増加量セ
ット処理319により、変数cpの指す分岐命令情報テ
ーブルの分岐命令が2バイト分または3バイト分に確定
したことを表す変数codeに「0」を代入し、分岐命
令情報テーブル判別処理320へ進む。分岐命令情報テ
ーブル判別処理320では、変数cpの指す分岐命令情
報テーブルの次の分岐命令情報テーブルが存在するか判
別する。この場合は、次の分岐命令情報テーブルが存在
するのでポインタインクリメント処理321へ進み変数
cpに分岐命令情報テーブルのサイズ分を加算し、変数
cpが次の分岐命令情報テーブルを指すようにして図1
2の増加量判別処理306へ進む。
【0020】増加量判別処理306により、変数cpの
指す分岐命令情報テーブルの図7の分岐命令(5)51
4が2バイト分の分岐命令かまたは3バイト分の分岐命
令に確定しているかを判別する。この場合、確定してい
ないので図12の分岐命令までの増加量算出処理307
によりファイルの先頭から変数cpの指す分岐命令情報
テーブルの図7の分岐命令(5)514までにいくつ図
10の最適化処理106の対象となる分岐命令が存在す
るか算出し、算出した分岐命令の数を変数Aに代入す
る。この場合、図7の分岐命令(1)510、分岐命令
(2)511、分岐命令(3)512および分岐命令
(5)514の4個なので「4」を変数Aに代入する。
図12の飛び先までの増加量算出処理308によりファ
イルの先頭から変数cpの指す分岐命令情報テーブルの
図7の分岐命令(5)514の飛び先である飛び先
(H)(5)524までにいくつ図10の最適化処理1
06の対象となる分岐命令が存在するか算出し、算出し
た分岐命令の数を変数Bに代入する。この場合、図7の
分岐命令(1)510、分岐命令(2)511、分岐命
令(3)512および分岐命令(5)514の4個なの
で「4」を変数Bに代入する。図12の相対アドレス代
入処理309により変数cpの指す分岐命令情報テーブ
ルの図7の分岐命令(5)514の飛び先である飛び先
(5)524のアドレスから変数cpの指す分岐命令情
報テーブルの分岐命令(5)514のアドレスを減算
し、変数mrlに代入する。この場合、−128バイト
なので「−128」を変数mrlに代入する。
【0021】そして、図12のシンボル参照判別処理3
10により変数cpの指す分岐命令情報テーブルの図7
の分岐命令(5)514が前方参照であるか後方参照で
あるか判別する。この場合、後方参照なので、図12の
相対値を変数maxrにセット処理313により、変数
mrlを変数maxrに代入し、コード増加量と相対値
を変数minrにセット処理314により、変数mrl
と変数Bを加算し、加算した結果から変数Aを減算した
結果を変数minrに代入する。この場合、変数min
rに「−128」が代入され、変数maxrに「−12
8」が代入される。次に、図13の2バイト分の分岐命
令出力判別処理315と3バイト分の分岐命令出力判別
処理316により2バイト分の分岐命令出力判別処理3
15と3バイト分の分岐命令出力判別処理316により
2バイト分の分岐命令を生成するか3バイト分の分岐命
令を生成するかの判別を行う。この場合、変数maxr
と変数minrが共に「−128」であるため2バイト
分の分岐命令出力判別処理315の条件が成り立ち、2
バイト分の分岐命令を生成することに確定し、フラグセ
ット処理318へ進む。
【0022】フラグセット処理318では、図7の分岐
命令(4)513が2バイト分の分岐命令を生成するこ
とに確定したので、2バイト分または3バイト分に確定
したことを表す変数flagに「1」を代入する。さら
に、図13のコード増加量セット処理319により変数
cpの指す分岐命令情報テーブルの分岐命令が2バイト
分または3バイト分に確定したことを表す変数code
に「0」を代入し、分岐命令情報テーブル判別処理32
0へ進む。分岐命令情報テーブル判別処理320では、
変数cpの指す分岐命令情報テーブルの次の分岐命令情
報テーブルが存在すか判別する。この場合は次の分岐命
令情報テーブルが存在するので、ポインタインクリメン
ト処理321へ進み、変数cpに分岐命令情報テーブル
のサイズ分を加算し、変数cpが次の分岐命令情報テー
ブルを指すようにして図12の増加量判別処理306へ
進み、図7の分岐命令(6)515、分岐命令(7)5
16および分岐命令(8)517に対して分岐命令
(5)514と同様の処理を行う。分岐命令(6)51
5と飛び先(G)(6)525の間に図10の最適化処
理106の対象となる分岐命令が存在しない、かつ、飛
び先(6)525のアドレスから分岐命令(6)515
のアドレスを減算した値が−128以上であるため分岐
命令(6)515は2バイト分の分岐命令を生成するこ
とに確定する。分岐命令(7)516およひ分岐命令
(8)517も分岐命令(6)515と同様に2バイト
分の分岐命令を生成することに確定する。
【0023】次に、分岐命令(9)518の処理および
分岐命令(10)519を行う。分岐命令(9)518
と飛び先(J)(9)528の間に図10の最適化処理
106の対象となる分岐命令(10)519が存在し、
かつ、分岐命令(10)519が2バイト分の分岐命令
に確定した場合は分岐命令(9)518も2バイト分の
分岐命令に確定し、分岐命令(10)519が3バイト
分の分岐命令に確定した場合は分岐命令(9)518も
3バイト分の分岐命令に確定するので、分岐命令(1
0)519が確定しないと分岐命令(9)518は確定
しない。分岐命令(10)519も同様に分岐命令
(9)518が確定しないと2バイト分の分岐命令を生
成するか3バイト分の分岐命令を生成するか確定しな
い。
【0024】分岐命令(10)519まで処理が終了す
ると、図13のフラグ判別処理322へ進む。フラグ判
別処理322では、2バイト分の分岐命令を生成するか
3バイト分の分岐命令を生成するかが確定したら「1」
にセットされる変flagが「1」であるかどうか判別
する。変数flagが「1」の場合は、2バイト分の分
岐命令を生成するか3バイト分の分岐命令を生成するか
確定した分岐命令があるということであり、2バイト分
の分岐命令を生成するか3バイト分の分岐命令を生成す
るか、確定した分岐命令がいままで2バイト分の分岐命
令を生成するか3バイト分の分岐命令を生成するか未確
定であったために、2バイト分の分岐命令を生成するか
3バイト分の分岐命令を生成するか確定できなかった分
岐命令が、2バイト分の分岐命令を生成するか3バイト
分の分岐命令を生成するか確定できる可能性があるため
図12の先頭アドレス代入処理301へ進む。これで1
回目の図10の最適化処理106が終了した。2バイト
分の分岐命令を生成することに確定した分岐命令は、図
7の分岐命令(4)513、分岐命令(5)514、分
岐命令(6)515、分岐命令(7)516および分岐
命令(8)517の5個である。
【0025】次に、2回目の図10の最適化処理106
を行う。図7の分岐命令(3)512と飛び先(B)
(3)522の間に図10の最適化処理106の対象と
なる分岐命令が存在しないかつ、飛び先(3)522の
アドレスから分岐命令(3)512のアドレスを減算し
た値が127以下であるため、分岐命令(3)512は
2バイト分の分岐命令を生成することに確定する。次
に、3回目の図10の最適化処理106を行うと図7の
分岐命令(2)511と飛び先(C)(2)521の間
に図10の最適化処理106の対象となる分岐命令が存
在しないかつ、飛び先(2)521のアドレスから分岐
命令(2)511のアドレスを減算した値が127以下
であるため分岐命令(2)511は2バイト分の分岐命
令を生成することに確定する。次に、4回目の図10の
最適化処理106を行うと、図7の分岐命令(1)51
0と飛び先(D)(1)520の間に図10の最適化処
理106の対象となる分岐命令が存在しないかつ、飛び
先(1)520のアドレスから分岐命令(1)510の
アドレスを減算した値が127以下であるため、分岐命
令(1)510は2バイト分の分岐命令を生成すること
に確定する。
【0026】次に、5回目の図10の最適化処理106
では図12の増加量判別処理306により、変数cpの
指す分岐命令情報テーブルの図7の分岐命令(1)51
0が2バイト分の分岐命令かまたは3バイト分の分岐命
令に確定しているかを判別する。この場合、確定してい
るので図13の分岐命令情報テーブル判別処理320へ
進む。分岐命令情報テーブル判別処理320では、変数
cpの指す分岐命令情報テーブルの次の分岐命令情報テ
ーブルが存在するか判別する。この場合は、図7の分岐
命令(1)510が最後の分岐命令でないので、図13
のポインタインクリメント処理321へ進み、変数cp
に分岐命令情報テーブルのサイズ分を加算し、変数cp
が次の分岐命令情報テーブルを指すようにして図12の
増加量判別処理306へ進む。図7の分岐命令(2)5
11、分岐命令(3)512、分岐命令(4)513、
分岐命令(5)514、分岐命令(6)515、分岐命
令(7)156および分岐命令(8)517も分岐命令
(1)510と同様に2バイト分の分岐命令かまたは3
バイト分の分岐命令に確定しているので、分岐命令
(1)510と同じ処理を繰り返す。
【0027】次に、分岐命令(9)518は、分岐命令
(10)519が2バイト分の分岐命令かまたは3バイ
ト分の分岐命令に確定しなければ分岐命令(9)518
が2バイト分の分岐命令かまたは3バイト分の分岐命令
に確定できない。同様に、分岐命令(10)519も分
岐命令(9)518が2バイト分の分岐命令かまたは3
バイト分の分岐命令に確定しなければ分岐命令(10)
519が2バイト分の分岐命令かまたは3バイト分の分
岐命令に確定できない。5回目の図10の最適化処理1
06では、2バイト分の分岐命令かまたは3バイト分の
分岐命令に確定した分岐命令がないため、変数flag
は「0」である。図13のフラグ判別処理322により
変数flagが「0」なのでシンボルテーブル補正処理
323へ進む。シンボルテーブル補正処理323は、シ
ンボルテーブルを作成したとき、2バイト分の分岐命令
を生成すると仮定してシンボル値を決定していたので、
3バイト分の分岐命令を生成することに確定した分岐命
令がある場合は、3バイト分の分岐命令を生成する数分
シンボルのアドレス値に加算する処理を行う。以上5回
目で図10の最適化処理106を終了する。
【0028】
【発明が解決しようとする課題】前述した従来のアセン
ブラ作成装置における分岐命令の最適化処理方式では、
分岐命令のアドレスが小さい順に処理を行っているた
め、図7の連続した前方参照の分岐命令群501のよう
に前方参照している分岐命令が4個連続していてかつ、
交差している分岐命令503のように交差している分岐
命令が1個ある場合は、従来の技術で示した通り分岐命
令の最適化処理を5回行わなくてはならないため、分岐
命令の最適化処理に時間がかかってしまう欠点があっ
た。
【0029】本発明の目的は、前記の欠点を除去するこ
とにより、分岐命令の最適化処理時間の短縮化を図った
アセンブラ作成装置を提供することにある。
【0030】
【課題を解決するための手段】本発明は、分岐先までの
相対アドレスの大小にかかわらず同一形式の分岐命令を
記述したソースプログラムファイルを入力して、前記分
岐命令を最も短いオブジェクトコードに対応させる最適
化処理を行いオブジェクトモジュールファイルを生成す
る手段を備えたアセンブラ作成装置において、前記分岐
命令が前記ソースプログラムファイルに出現する度に前
記分岐命令の情報を持ちかつそのアドレスの大きい順に
チェインでつないだ双方向分岐命令情報テーブルを作成
し記憶装置に格納する双方向分岐命令情報テーブル作成
手段と、前記双方向分岐命令情報テーブルを基に、前記
分岐命令のアドレスの大きい順と小さい順とに交互に前
記最適化処理を行う双方向最適化処理手段とを含むこと
を特徴とする。
【0031】
【作用】双方向分岐命令情報テーブルはアドレスの大き
い順にチェインでつながれた構成を有し、双方向最適化
処理は、この双方向分岐命令情報テーブルに基づいて、
アドレスの大きい順と小さい順に交互に処理を行う。
【0032】これにより、連続した前方参照の分岐命令
が複数個存在する場合に、初めアドレスの大きい順、次
いでアドレスの小さい順に処理することにより、すべて
の分岐命令を処理できるため、分岐命令の個数に関係な
く2回の最適化処理で済ますことができ、分岐命令の最
適化処理時間の短縮化を図ることが可能となる。
【0033】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
【0034】図1は本発明の一実施例を示すブロック構
成図、および図2(a)および(b)はその双方向分岐
命令情報テーブルの一例を示す説明図である。
【0035】本実施例は、分岐先までの相対アドレスの
大小にかかわらず同一形式の分岐命令を記述したソース
プログラムファイル1を入力して、前記分岐命令を最も
短いオブジェクトコードに対応させる最適化処理を行い
オブジェクトモジュールファイル3を生成する手段の一
部として、オブジェクト生成処理手段23を備えたアセ
ンブラ作成装置2aにおいて、本発明の特徴とするとこ
ろの、前記分岐命令がソースプログラムファイル1に出
現する度に前記分岐命令の情報を持ちかつそのアドレス
の大きい順にチェインでつないだ双方向分岐命令情報テ
ーブル5aを作成し記憶装置4に格納する双方向分岐命
令情報テーブル作成手段21aと、双方向分岐命令情報
テーブル5aを基に、前記分岐命令のアドレスの大きい
順と小さい順とに交互に前記最適化処理を行う双方向最
適化処理手段22aとを備えている。
【0036】また、双方向分岐命令情報テーブル5a
は、図2(b)に示すように、次のテーブルを指すチェ
インポインタ(変数next)440と、前のテーブル
を指すチェインポインタ(変数back)と、分岐命令
のアドレス(変数add)442と、シンボルテーブル
を指すチェインポインタ(変数symp)443と、コ
ード増加量(変数code)444とを含んで構成され
る。
【0037】次に、本実施例の動作について、図3〜図
7を参照して説明する。なおここで、図3は本実施例の
全体の動作を示す流れ図、図4は図3の双方向分岐命令
情報テーブル作成処理の一例を示す流れ図、図5は図3
の双方向最適化処理の一例の前半部分を示す流れ図、図
6は図3の双方向最適化処理の一例の後半部分を示す流
れ図、および図7は本発明を適用するソースプログラム
ファイルの一例を示す説明図である。
【0038】図7のソースプログラムファイル1を入力
し、図3のパス1:双方向分岐命令情報テーブル5aを
作成するソース解析処理100で行の解析をした結果、
図7の分岐命令(1)510が出現したら、図4の処理
で分岐命令の情報を図3の双方向分岐命令情報テーブル
5aに設定する。図4の分岐命令のアドレスセット処理
200で、図7の分岐命令(1)510の次のアドレス
を図2(a)の分岐命令(1)の双方向分岐命令情報テ
ーブル430aが持つ変数addに代入する。図4のシ
ンボルテーブルのアドレスセット処理201で、図7の
飛び先(D)(1)520のシンボルテーブルのアドレ
スを図2(a)の分岐命令(1)の双方向分岐命令情報
テーブル430aが持つ変数sympに代入する。図4
のコード増加量セット処理202で、2バイト分の分岐
命令を生成するか3バイト分の分岐命令を生成するか未
確定であることを示す「1」を、コード増加量の初期値
として図2(a)の分岐命令(1)の双方向分岐命令情
報テーブル430aが持つ変数codeに代入する。図
4の次のテーブルのアドレスセット処理203で、次の
双方向分岐命令情報テーブルを作成し、作成した次の双
方向分岐命令情報テーブルのアドレスを図2(a)の分
岐命令(1)の双方向分岐命令情報テーブル430aが
持つ変数nextに代入する。図4の前のテーブルのア
ドレスセット処理204で、図2(a)の分岐命令
(1)の双方向分岐命令情報テーブル430aのアドレ
スを次の双方向分岐命令情報テーブルが持つ変数bac
kに代入する。図4のアドレスセット処理205で図2
(a)の分岐命令(1)の双方向分岐命令情報テーブル
430aのアドレスを最後の双方向分岐命令情報テーブ
ルを指す変数btm401に代入する。これで分岐命令
(1)の双方向分岐命令情報テーブル430aが作成さ
れる。
【0039】以下、同じように図7の分岐命令(2)5
11、分岐命令(3)512、分岐命令(4)513、
分岐命令(5)514、分岐命令(6)515、分岐命
令(7)516、分岐命令(8)517、分岐命令
(9)518、および分岐命令(10)519について
行い、図2(a)の各々の双方向分岐命令情報テーブル
431a、432a、433a、434a、435a、
436a、437a、438aおよび439aが作成さ
れる。ここで作成された双方向分岐命令情報テーブル4
30a〜439aは、それぞれ自アドレスと前および後
のテーブルのアドレスをポインタとして有しており、こ
れを基にアドレスの大きい順および小さい順の二通りの
処理が可能となる。
【0040】図3のファイル終了判別処理101で入力
ファイルが終了後、分岐命令の最適化をする図3の双方
向最適化処理102を行う。次に、図5および図6の流
れ図に従ってこの双方向最適化処理を説明する。
【0041】図3の双方向の最適化処理102では、図
5のループ判別処理300によりアドレスの小さい順か
ら最適化を行うかアドレスの大きい順に最適化を行うか
を表す変数iが「0」かどうか判別する。変数iは初期
値を「0」としているのでこの場合条件が成り立ち、先
頭アドレス代入処理301へ進む。先頭アドレス代入処
理301において、双方向分岐命令情報テーブルの先頭
を指す図2(a)の先頭を指すチェインポインタ400
を変数cpに代入し、図5のループ変数「1」代入処理
302においてアドレスの小さい順から最適化を行うか
アドレスの大きい順に最適化を行うかを表す変数iに
「1」を代入し、フラグ初期化処理305において分岐
命令が2バイト分または3バイト分に確定したことを表
す変数flagに初期値として「0」を代入する。増加
量判別処理306以降の処理は従来の技術と同様である
ので1回目の図3の双方向最適化処理102が終了した
時点で2バイト分の分岐命令を生成することに確定した
分岐命令は、分岐命令(4)513、分岐命令(5)5
14、分岐命令(6)515、分岐命令(7)516お
よび分岐命令(8)517の5個である。
【0042】次に、2回目の図3の双方向最適化処理1
02を行う。双方向最適化処理102では、図5のルー
プ判別処理300によりアドレスの小さい順から最適化
を行うかアドレスの大きい順に最適化を行うかを表す変
数iが「0」かどうか判別する。この場合変数iは
「1」なので条件が成り立たず、末尾アドレス代入処理
303へ進む。末尾アドレス代入処理303において、
双方向分岐命令情報テーブルの最後を指す図2(a)の
末尾を指すチェインポインタ400(btm)を変数c
pに代入し、図5のループ変数「0」代入処理304に
おいてアドレスの小さい順から最適化を行うかアドレス
の大きい順に最適化を行うかを表す変数iに「0」を代
入し、フラグ初期化処理305において分岐命令が2バ
イト分または3バイト分に確定したことを表す変数fl
agに初期値として「0」を代入する。増加量判別処理
306により変数cpの指す双方向分岐命令情報テーブ
ルの図7の分岐命令(10)519が2バイト分の分岐
命令かまたは3バイト分の分岐命令に確定しているかを
判別する。
【0043】この場合、確定していないので図5の分岐
命令までの増加量算出処理307により、ファイルの先
頭から変数cpの指す双方向分岐命令情報テーブルの図
7の分岐命令(10)519までにいくつ図3の双方向
の最適化処理102の対象となる分岐命令が存在するか
算出し、変数Aに代入する。この場合、図7の分岐命令
(1)510、分岐命令(2)511、分岐命令(3)
512、分岐命令(4)513、分岐命令(5)51
4、分岐命令(6)515、分岐命令(7)516、分
岐命令(8)517および分岐命令(9)518の9個
なので「9」を変数Aに代入する。図5の飛び先までの
増加量算出処理308により、ファイルの先頭から変数
cpの指す双方向分岐命令情報テーブルの図7の分岐命
令(10)519の飛び先である飛び先(I)(10)
529までにいくつ図3の双方向最適化処理102の対
象となる分岐命令が存在するか算出し、変数Bに代入す
る。この場合、図7の分岐命令(1)510、分岐命令
(2)511、分岐命令(3)512、分岐命令(4)
513、分岐命令(5)514、分岐命令(6)51
5、分岐命令(7)516、分岐命令(8)517の8
個なので「8」を変数Bに代入する。図5の相対アドレ
ス代入処理309により、変数cpの指す双方向分岐命
令情報テーブルの図7の分岐命令(10)519の飛び
先である飛び先(10)529のアドレスから変数cp
の指す分岐命令情報テーブルの分岐命令(10)519
のアドレスを減算し、変数mrlに代入する。この場
合、−128バイトなので「−128」を変数mrlに
代入する。
【0044】そして、図5のシンボル参照判別処理31
0により、変数cpの指す双方向分岐命令情報テーブル
の図6の分岐命令(10)519が前方参照であるか後
方参照であるか判別する。この場合、後方参照なので図
5の相対値を変数maxrにセット処理313により、
変数mrlを変数maxrに代入し、コード増加量と相
対値を変数minrにセット処理314により、変数m
rlと変数Bを加算し、加算した結果から変数Aを減算
した結果を変数minrに代入する。この場合、変数m
inrに「−129」が代入され、変数maxrに「−
128」が代入される。
【0045】次に、図6の2バイト分の分岐命令出力判
別処理315と3バイト分の分岐命令出力判別処理31
6により、2バイト分の分岐命令を生成するか3バイト
分の分岐命令を生成するかの判別を行う。この場合、変
数minrが「−129」であるため2バイト分の分岐
命令出力判別処理315の条件が成り立たず、3バイト
分の分岐命令出力判別処理316へ進む。変数maxr
が「−129」であるため3バイト分の分岐命令出力判
別処理316の条件は成り立ち、2バイト分の分岐命令
を生成するか3バイト分の分岐命令を生成するか確定し
ないので分岐命令情報テーブル判別処理320へ進む。
分岐命令情報テーブル判別処理320では、変数cpの
指す双方向分岐命令情報テーブルの次の双方向分岐命令
情報テーブルが存在するか判別する。この場合は次の双
方向分岐命令情報テーブルが存在するのでポインタイン
クリメント処理321へ進み、変数cpに分岐命令情報
テーブルのサイズ分を加算し、次の双方向分岐命令情報
テーブルを指すようにして図5の増加量判別処理306
へ進み、図7の分岐命令(9)518に対して分岐命令
(10)519と同様の処理を行う。分岐命令(9)5
18も同様に分岐命令(10)519が確定しないと2
バイト分の分岐命令を生成するか3バイト分の分岐命令
を生成するか確定しない。
【0046】次に、分岐命令(3)512の処理を行
う。分岐命令(3)512と飛び先(B)(3)522
の間に図3の双方向最適化処理102の対象となる分岐
命令が存在しないかつ、飛び先(3)522のアドレス
から分岐命令(3)512のアドレスを減算した値が1
27以下であるため、分岐命令(3)512は2バイト
分の分岐命令を生成することに確定する。分岐命令
(2)511と飛び先(C)(2)521の間に図3の
双方向最適化処理102の対象となる分岐命令が存在し
ないかつ、飛び先(2)521のアドレスから分岐命令
(2)511のアドレスを減算した値が127以下であ
るため、分岐命令(2)は2バイト分の分岐命令を生成
することに確定する。分岐命令(1)510と飛び先
(D)(1)520の間に図3の双方向最適化処理10
2の対象となる分岐命令が存在しないかつ、飛び先
(1)520のアドレスから分岐命令(1)510のア
ドレスを減算した値が127以下であるため、分岐命令
(1)は2バイト分の分岐命令を生成することに確定す
る。これで2回目の図3の双方向最適化処理102が終
了する。
【0047】これにより、2バイト分の分岐命令を生成
することに確定した分岐命令は、図7の分岐命令(1)
510、分岐命令(2)511、分岐命令(3)51
2、分岐命令(4)513、分岐命令(5)514、分
岐命令(6)515、分岐命令(7)516および分岐
命令(8)517の8個である。
【0048】次に、3回目の図3の双方向最適化処理1
02を行う。3回目の双方向最適化処理102は、従来
の技術で説明した5回目の最適化処理106と同様であ
るので以上3回目で図3の双方向最適化処理102を終
了する。
【0049】以上説明したように、本実施例によると、
従来例では5回必要とした最適化処理を3回で済ますこ
とができる。
【0050】
【発明の効果】以上説明したように、本発明におけるア
センブラの分岐命令の最適化処理方式は、アドレスの小
さい順からの最適化とアドレスの大きい順からの最適化
を交互に行うことにより、例えば、従来の技術で5回必
要とした最適化処理を3回の最適化処理で済ますことが
できる。このことにより、交差している分岐命令がある
場合は、従来の技術と同じく最適化処理が1回必要であ
るが、従来の技術において連続した前方参照の分岐命令
の個数分最適化の回数が必要とされるのに対して、本発
明では、連続した前方参照の分岐命令の個数にかかわら
ず最適化処理が2回に削減される効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示すブロック構成図。
【図2】その双方向分岐命令情報テーブルの一例を示す
説明図。
【図3】その全体の動作を示す流れ図。
【図4】図3の双方向分岐命令情報テーブル作成処理の
一例を示す流れ図。
【図5】図3の双方向最適化処理の一例の前半部分を示
す流れ図。
【図6】図3の双方向最適化処理の一例の後半部分を示
す流れ図。
【図7】本発明を適用するソースプログラムファイルの
一例を示す説明図。
【図8】従来例を示すブロック構成図。
【図9】その分岐命令情報テーブルの一例を示す説明
図。
【図10】その全体の動作を示す流れ図。
【図11】図10の分岐命令情報テーブル作成処理の一
例を示す流れ図。
【図12】図10の最適化処理の一例の前半部分を示す
流れ図。
【図13】図10の最適化処理の一例の後半部分を示す
流れ図。
【符号の説明】
1 ソースプログラムファイル 2、2a アセンブラ作成装置 3 オブジェクトモジュールファイル 4 記憶装置 5、430〜439 分岐命令情報テーブル 5a、430a〜439a 双方向分岐命令情報テーブ
ル 21 分岐命令情報テーブル作成手段 21a 双方向分岐命令情報テーブル作成手段 22 最適化処理手段 22a 双方向最適化処理手段 23 オブジェクト生成処理手段 100〜103、105〜107、200〜205、3
00〜323 処理 400、401、410〜429、440、441、4
43 チェインポインタ 442 アドレス 444 コード増加量 501、502 分岐命令群 503、510〜519 分岐命令 520〜529 飛び先

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 分岐先までの相対アドレスの大小にかか
    わらず同一形式の分岐命令を記述したソースプログラム
    ファイルを入力して、前記分岐命令を最も短いオブジェ
    クトコードに対応させる最適化処理を行いオブジェクト
    モジュールファイルを生成する手段を備えたアセンブラ
    作成装置において、 前記分岐命令が前記ソースプログラムファイルに出現す
    る度に前記分岐命令の情報を持ちかつそのアドレスの大
    きい順にチェインでつないだ双方向分岐命令情報テーブ
    ルを作成し記憶装置に格納する双方向分岐命令情報テー
    ブル作成手段と、 前記双方向分岐命令情報テーブルを基に、前記分岐命令
    のアドレスの大きい順と小さい順とに交互に前記最適化
    処理を行う双方向最適化処理手段とを含むことを特徴と
    するアセンブラ作成装置。
JP3164519A 1991-07-04 1991-07-04 アセンブラ処理装置 Expired - Lifetime JP3036900B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3164519A JP3036900B2 (ja) 1991-07-04 1991-07-04 アセンブラ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3164519A JP3036900B2 (ja) 1991-07-04 1991-07-04 アセンブラ処理装置

Publications (2)

Publication Number Publication Date
JPH0512032A true JPH0512032A (ja) 1993-01-22
JP3036900B2 JP3036900B2 (ja) 2000-04-24

Family

ID=15794708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3164519A Expired - Lifetime JP3036900B2 (ja) 1991-07-04 1991-07-04 アセンブラ処理装置

Country Status (1)

Country Link
JP (1) JP3036900B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241196A (ja) * 1995-03-05 1996-09-17 Nec Corp 分岐命令処理方式

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231237A (ja) * 1988-07-20 1990-02-01 Kobe Nippon Denki Software Kk 最適分岐命令生成方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231237A (ja) * 1988-07-20 1990-02-01 Kobe Nippon Denki Software Kk 最適分岐命令生成方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241196A (ja) * 1995-03-05 1996-09-17 Nec Corp 分岐命令処理方式

Also Published As

Publication number Publication date
JP3036900B2 (ja) 2000-04-24

Similar Documents

Publication Publication Date Title
KR100875401B1 (ko) 프로세서 장치 및 복합 조건 처리 방법
JP2002512398A (ja) パックデータ上でシフト演算を実行するための方法および装置
JPS633337B2 (ja)
US6862730B1 (en) Register allocation in code translation between processors
JPH0512032A (ja) アセンブラ作成装置
EP0513829B1 (en) Fuzzy reasoning processor and method, and rule setting apparatus and method
JPH08241196A (ja) 分岐命令処理方式
US6961846B1 (en) Data processing unit, microprocessor, and method for performing an instruction
JP3804778B2 (ja) プロセッサ及び命令実行方法
JPH05257703A (ja) アセンブラ装置
JPH04330526A (ja) リローケタブル・アセンブラ
JP3206863B2 (ja) コード変換方法及びコード変換器
JPH0411888B2 (ja)
WO1990007152A1 (en) A modular blackboard-based expert system
JPH07325703A (ja) データ変換装置及びデータ変換方法
KR930005706B1 (ko) 피엘씨의 하드웨어명령어 고속처리방법
JPH0522935B2 (ja)
JPS6345603A (ja) プログラマブルコントロ−ラのプログラム格納方式
JPH0651993A (ja) アセンブル装置
JPH04273329A (ja) プログラム変換方式
JPH01145730A (ja) データ行先き制御方式
JPH0546382A (ja) データ長選択方法
JPH03139739A (ja) テスト手順書自動生成方式
JPH05135183A (ja) 制御点データ処理装置
JPS61134841A (ja) プログラム生成システム