JPH0353333A - アセンブラのアセンブル処理方式 - Google Patents
アセンブラのアセンブル処理方式Info
- Publication number
- JPH0353333A JPH0353333A JP18943989A JP18943989A JPH0353333A JP H0353333 A JPH0353333 A JP H0353333A JP 18943989 A JP18943989 A JP 18943989A JP 18943989 A JP18943989 A JP 18943989A JP H0353333 A JPH0353333 A JP H0353333A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- line
- source program
- file
- assembler
- 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
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000003672 processing method Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、アセンプラのアセンブル処理方式に関して、
特にマクロ処理、条件付きアセンブル処理においてアセ
ンブルを高速に処理できるアセンブル処理方式に関する
ものである。
特にマクロ処理、条件付きアセンブル処理においてアセ
ンブルを高速に処理できるアセンブル処理方式に関する
ものである。
従来、アセンブラにおいては、2パス方式でアセンブル
をかこなっていた。第1のパスにおいては、ソース・プ
ログラム・ファイルから1行毎に読込んで、そのl行毎
に読込んで、その1行の中に記述された文字列を解釈し
てアセンブル処理を行っていた。その読込んだンース行
が、マクロ定義であった場合には、マクロ本体の開始行
からマクロ本体の終了の行筐でをメモリに登録し、マク
ロ参照時に、メモリからンースプログラムを読込んで解
釈していた。
をかこなっていた。第1のパスにおいては、ソース・プ
ログラム・ファイルから1行毎に読込んで、そのl行毎
に読込んで、その1行の中に記述された文字列を解釈し
てアセンブル処理を行っていた。その読込んだンース行
が、マクロ定義であった場合には、マクロ本体の開始行
からマクロ本体の終了の行筐でをメモリに登録し、マク
ロ参照時に、メモリからンースプログラムを読込んで解
釈していた。
また、読み込んだソース行が、条件付きアセンブル機能
であった場合には、条件が真であれば、ンースプログラ
ムを読込んで解釈を行い、その条件が偽であれば、条件
付きアセンブル機能の終了管で読飛ばして処理を行なっ
ていた。
であった場合には、条件が真であれば、ンースプログラ
ムを読込んで解釈を行い、その条件が偽であれば、条件
付きアセンブル機能の終了管で読飛ばして処理を行なっ
ていた。
筐た、第2のバスでは、再度ソース・プログラム・ファ
イルを読込んで、バスlと同様に1行毎に文字列を解釈
してアセンブル処理を行っていた。
イルを読込んで、バスlと同様に1行毎に文字列を解釈
してアセンブル処理を行っていた。
この第2のパスに釦いて、マクロ定義処理は、既に第1
のパスで、メモリに登録済みであるため、読込んだンー
ス行の文字列を解釈してマクロ定義の終了か否か判定し
、マクロ定義の終了まで、ンース行の文字列を解釈して
、読飛ばす処理を行っテf/k7’c。第2のパスにお
いて、条件付きアセンブル処理は、条件が偽であれば、
第1のパスと同様にンース行の解釈を行って、条件付き
アセンブルの終了筐で読飛ばす処理を行い、オブジェク
ト・モジュール・ファイルとアセンブル・リスト・ファ
イルを出力していた。
のパスで、メモリに登録済みであるため、読込んだンー
ス行の文字列を解釈してマクロ定義の終了か否か判定し
、マクロ定義の終了まで、ンース行の文字列を解釈して
、読飛ばす処理を行っテf/k7’c。第2のパスにお
いて、条件付きアセンブル処理は、条件が偽であれば、
第1のパスと同様にンース行の解釈を行って、条件付き
アセンブルの終了筐で読飛ばす処理を行い、オブジェク
ト・モジュール・ファイルとアセンブル・リスト・ファ
イルを出力していた。
上述した従来のアセンブル処理方式では、マクロ定義処
理、条件付きアセンブル処理で偽になったンース行に対
しては、第2のパスでは、単に読込んだソース行を読飛
ばすことが可能でも、そのソース行が読飛ばしてよいか
否かは、その行の文字列を解釈しなければ判断すること
ができなかったために、第2のバスでのアセンブルの処
理時間を短縮することができない欠点があった。特に、
文字列の解釈において、予約語が多い場合には、文字列
の解釈にかける予約語テーブルの探索処理時間が大きく
なるために、高速にアセンブルすることができない欠点
があった。
理、条件付きアセンブル処理で偽になったンース行に対
しては、第2のパスでは、単に読込んだソース行を読飛
ばすことが可能でも、そのソース行が読飛ばしてよいか
否かは、その行の文字列を解釈しなければ判断すること
ができなかったために、第2のバスでのアセンブルの処
理時間を短縮することができない欠点があった。特に、
文字列の解釈において、予約語が多い場合には、文字列
の解釈にかける予約語テーブルの探索処理時間が大きく
なるために、高速にアセンブルすることができない欠点
があった。
本発明の目的は、第2のバスに訃いて、第1のパスで、
ソース・プログラム中でバス2処理で解釈不要な部分を
検出し、その情報を記憶することによって、第2のバス
で、前記情報に基づきソース・プログラムの解釈処理を
行なわないために、アセンブル処理時間を短縮すること
を可能とするアセンブラのアセンブル処理方式を提供す
ることにある。
ソース・プログラム中でバス2処理で解釈不要な部分を
検出し、その情報を記憶することによって、第2のバス
で、前記情報に基づきソース・プログラムの解釈処理を
行なわないために、アセンブル処理時間を短縮すること
を可能とするアセンブラのアセンブル処理方式を提供す
ることにある。
本発明の構成は、ソース・プログラム・ファイルを読込
んでオブジェクト・モジュール・ファイルとアセンブル
・リスト・7アイルを出力する2パス処理を行うアセン
プラのアセンブル処理方式において、第1のパスにおい
て前記入力ソース・プログラム中で第2のパス処理での
解釈処理の不要な部分を検出する第1の処理と、この第
1の処理によって検出した情報を記憶する第2の処理と
、前記第2のパスにおいて前記記憶した情報を参照して
前記ソース・プログラムを解釈処理せずに読飛ばす第3
の処理とを含むことを特徴とする。
んでオブジェクト・モジュール・ファイルとアセンブル
・リスト・7アイルを出力する2パス処理を行うアセン
プラのアセンブル処理方式において、第1のパスにおい
て前記入力ソース・プログラム中で第2のパス処理での
解釈処理の不要な部分を検出する第1の処理と、この第
1の処理によって検出した情報を記憶する第2の処理と
、前記第2のパスにおいて前記記憶した情報を参照して
前記ソース・プログラムを解釈処理せずに読飛ばす第3
の処理とを含むことを特徴とする。
次に、本発明について図面を参照して説明する。
第1図は本発明のアセンブラの処理方式の一実施例の流
れ図である。本実施例のアセンプラ1には、初期値設定
処理11,ソース・プログラム・ファイル3lからのソ
ース・プログラム読込み処理12,バス判定処理13,
ソース行解析処理14,20,疑似命令処理15,シン
ボルテーブル作或処理16,偽行為判定処理17,行番
号登録処理18,行番号テーブル34からのテーブル範
囲内行判定処理19,終了文判定処理21,オブジェク
ト生戒処理22,リスト出力処理23が含1れる。
れ図である。本実施例のアセンプラ1には、初期値設定
処理11,ソース・プログラム・ファイル3lからのソ
ース・プログラム読込み処理12,バス判定処理13,
ソース行解析処理14,20,疑似命令処理15,シン
ボルテーブル作或処理16,偽行為判定処理17,行番
号登録処理18,行番号テーブル34からのテーブル範
囲内行判定処理19,終了文判定処理21,オブジェク
ト生戒処理22,リスト出力処理23が含1れる。
次の第1表はソース・プログラム・ファイル3lの一例
、第2表は行番号テーブル34の一例、第3表はマクロ
本体の一例をそれぞれ示す。
、第2表は行番号テーブル34の一例、第3表はマクロ
本体の一例をそれぞれ示す。
第1表 ソース・プログラム・ファイル3l第2表
行番号テーブル34
以下、本実施例のアセンプラの処理方式でソース・プロ
グラム・ファイル3lを読込むアセンブル処理を順次説
明する。
グラム・ファイル3lを読込むアセンブル処理を順次説
明する。
(1) 第1図において、初期値設定処理l1で、ア
センブルに必要な変数、テーブルの初期化をかこなう。
センブルに必要な変数、テーブルの初期化をかこなう。
この場合バスはlとする。
(2)次のソース・プログラム1行読込み処理l2で、
ソース・プログラム・ファイル3lを1行毎に読込む。
ソース・プログラム・ファイル3lを1行毎に読込む。
(3)パス1か否かを処理l3で判定し、バスlであれ
ば処理(l4)以降を行い、パス2であれば処理(l9
)以降の処理を行う。
ば処理(l4)以降を行い、パス2であれば処理(l9
)以降の処理を行う。
(4〉 ンース行解析処理l4で、予約語テーブル3
3を参照してンース行を解析する。
3を参照してンース行を解析する。
(5〉 処理14で解析した結果で疑似命令処理l5
を行なう。
を行なう。
ソース・プログラム・ファイル31の絆了であれば、パ
スを2とし、ソース・プログラム・ファイル3lの先頭
からソース・プログラム・ファイルが読込めるようにポ
インタを戻す。lた、マクロ定義であれば、マクロ本体
32としてメモリに書込む。入力したソース・プログラ
ム・ファイル3lに記述されたニモニックは、その命令
の長さによってシンボルテーブル35の作或を行う。条
件付きアセンブル命令の処理を行い、条件が真であれば
アセンブル処理を行い、条件が偽であればその行に対し
ては倒もしない。
スを2とし、ソース・プログラム・ファイル3lの先頭
からソース・プログラム・ファイルが読込めるようにポ
インタを戻す。lた、マクロ定義であれば、マクロ本体
32としてメモリに書込む。入力したソース・プログラ
ム・ファイル3lに記述されたニモニックは、その命令
の長さによってシンボルテーブル35の作或を行う。条
件付きアセンブル命令の処理を行い、条件が真であれば
アセンブル処理を行い、条件が偽であればその行に対し
ては倒もしない。
(6)次に、シンボルテーブル作成処理l6で、シンボ
ルテーブル35を作成する。
ルテーブル35を作成する。
(7)次に、処理17でマクロ定義中あるいは条件付き
アセンブルで偽であるか否かの判断をする。
アセンブルで偽であるか否かの判断をする。
マクロ定義中あるいは条件付きアセンブルで偽であれば
、処理l8を行い、それ以外であれば、次のソース・プ
ログラム・ファイル3lの読込み処理l2へ制御を移す
。
、処理l8を行い、それ以外であれば、次のソース・プ
ログラム・ファイル3lの読込み処理l2へ制御を移す
。
(8)行番号登録処理l8では、第2表の行番号テーブ
ル34に示すように、開始行番号kよび終了行番号を登
録する。ソース・プログラム・ファイル3lでは、マク
ロ定義は、ンース行番号30から行番号33であるから
行番号30と33を登録する。条件付きアセンブル命令
は、ソース行番120から161までであるから、条件
付きアセンブル命令のソース行120の条件は、シンボ
ルXYZが行番号lで0となっているので、真となる。
ル34に示すように、開始行番号kよび終了行番号を登
録する。ソース・プログラム・ファイル3lでは、マク
ロ定義は、ンース行番号30から行番号33であるから
行番号30と33を登録する。条件付きアセンブル命令
は、ソース行番120から161までであるから、条件
付きアセンブル命令のソース行120の条件は、シンボ
ルXYZが行番号lで0となっているので、真となる。
従って、行番号テーブル34へは、条件ンース行番号1
20が、開始行番号と終了行番号に、かよび条件が偽と
なるンース行番号141が開始行番号に、ンース行番号
161が終了行番号として、登録する。
20が、開始行番号と終了行番号に、かよび条件が偽と
なるンース行番号141が開始行番号に、ンース行番号
161が終了行番号として、登録する。
(9)バス2の処理については、ソース・プログラム・
ファイル3lから1行読み込み処理l2で、読込んだン
ース行番号が、行番号テーブル34の範囲内かを判定処
理l9を行う。これが範囲内であれば、処理20〜22
筐での処理をスキップすることが可能となる。マクロ参
照行は、第3表のマクロ本体32から、ソース・プログ
ラムとして読込んで処理を行う。
ファイル3lから1行読み込み処理l2で、読込んだン
ース行番号が、行番号テーブル34の範囲内かを判定処
理l9を行う。これが範囲内であれば、処理20〜22
筐での処理をスキップすることが可能となる。マクロ参
照行は、第3表のマクロ本体32から、ソース・プログ
ラムとして読込んで処理を行う。
(10)行番号判定処理l9で範囲外と判定すれば、ン
ース行解析処理20を行なう。
ース行解析処理20を行なう。
(11) ソース・プログラムの終了か否かの判定処
理2lを行い、ENDであれば終了となる。
理2lを行い、ENDであれば終了となる。
(12)次にオブジェクト生或処理22で、ンンボルテ
ーブル35を参照してオブジェクトを生威し、オブジェ
クト・モジュール・ファイル36にオブジェクトを出力
する。
ーブル35を参照してオブジェクトを生威し、オブジェ
クト・モジュール・ファイル36にオブジェクトを出力
する。
(13)リスト出力処理23で、アセンブル・リスト・
ファイル37にアセンブル・リストを出力する。
ファイル37にアセンブル・リストを出力する。
以上の処理によって、パス2処理では、バスlの処理中
に作成した行番号テーブル34を参照することによって
、処理20〜22をスキップすることが可能であるため
、高速にアセンブル処理を行うことができる。
に作成した行番号テーブル34を参照することによって
、処理20〜22をスキップすることが可能であるため
、高速にアセンブル処理を行うことができる。
以上説明したように、本発明のアセンブラのアセンブル
処理方式は、,パス1処理で、バス2処理でソース・プ
ログラム・ファイルを読飛ばすことの可能な行番号を記
憶することによって、パス2処理で記憶した行番号のン
ース行の解析処理を省略することによって、高速にアセ
ンブルすることができるという効果を有している。
処理方式は、,パス1処理で、バス2処理でソース・プ
ログラム・ファイルを読飛ばすことの可能な行番号を記
憶することによって、パス2処理で記憶した行番号のン
ース行の解析処理を省略することによって、高速にアセ
ンブルすることができるという効果を有している。
第1図は本発明のアセンブラの処理方式の一実施例の流
れ図である。 l・・・・・・アセンブヲ、11・・・・・・初期値設
定処理、l2・・・・・・ンース・プログ2ム1行読込
み処理, 13・・・・・−パス1判定処理,14.2
0・・・・・・ンース行解析処理、l5・・・・・・疑
似命令処理、l6・・・・・・ンンボル作或処理、17
・・・・・・アセンブルの偽の行判定処理、l8・・・
・・・行番号登録処理、19・・・・・・行番号テーブ
ル範囲内の行判定処理、2l・・・・・・END文判定
処理、22・・・・・・オブジェクト生威処理、23・
・・・・・リスト出力処理、31・・・・・・ソース・
プログラム・ファイル、32・・・・・・マクロ本体、
33・・・・・・予約語テーブル、34・゛゜゜・・行
番号テーブル、35゜・゛゜゜゛シンボルテーブル、3
6・・・・・・オブジェクト・モジュール・ファイル、
37・・゜・・゜アセンブル・リスト・ファイル。
れ図である。 l・・・・・・アセンブヲ、11・・・・・・初期値設
定処理、l2・・・・・・ンース・プログ2ム1行読込
み処理, 13・・・・・−パス1判定処理,14.2
0・・・・・・ンース行解析処理、l5・・・・・・疑
似命令処理、l6・・・・・・ンンボル作或処理、17
・・・・・・アセンブルの偽の行判定処理、l8・・・
・・・行番号登録処理、19・・・・・・行番号テーブ
ル範囲内の行判定処理、2l・・・・・・END文判定
処理、22・・・・・・オブジェクト生威処理、23・
・・・・・リスト出力処理、31・・・・・・ソース・
プログラム・ファイル、32・・・・・・マクロ本体、
33・・・・・・予約語テーブル、34・゛゜゜・・行
番号テーブル、35゜・゛゜゜゛シンボルテーブル、3
6・・・・・・オブジェクト・モジュール・ファイル、
37・・゜・・゜アセンブル・リスト・ファイル。
Claims (1)
- ソース・プログラム・ファイルを読込んでオブジェクト
・モジュール・ファイルとアセンブル・リスト・ファイ
ルを出力する2パス処理を行うアセンブラのアセンブル
処理方式において、第1のパスにおいて前記入力ソース
・プログラム中で第2のパス処理での解釈処理の不要な
部分を検出する第1の処理と、この第1の処理によって
検出した情報を記憶する第2の処理と、前記第2のパス
において前記記憶した情報を参照して前記ソース・プロ
グラムを解釈処理せずに読飛ばす第3の処理とを含むこ
とを特徴とするアセンブラのアセンブル処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18943989A JPH0353333A (ja) | 1989-07-21 | 1989-07-21 | アセンブラのアセンブル処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18943989A JPH0353333A (ja) | 1989-07-21 | 1989-07-21 | アセンブラのアセンブル処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0353333A true JPH0353333A (ja) | 1991-03-07 |
Family
ID=16241268
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18943989A Pending JPH0353333A (ja) | 1989-07-21 | 1989-07-21 | アセンブラのアセンブル処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0353333A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113343660A (zh) * | 2021-06-17 | 2021-09-03 | 东风柳州汽车有限公司 | 装配文件创建系统及方法 |
-
1989
- 1989-07-21 JP JP18943989A patent/JPH0353333A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113343660A (zh) * | 2021-06-17 | 2021-09-03 | 东风柳州汽车有限公司 | 装配文件创建系统及方法 |
| CN113343660B (zh) * | 2021-06-17 | 2023-05-12 | 东风柳州汽车有限公司 | 装配文件创建系统及方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0721033A (ja) | 言語処理装置及びその方法 | |
| CN113408597B (zh) | 一种基于两阶段框架的Java方法名推荐方法 | |
| JPH0353333A (ja) | アセンブラのアセンブル処理方式 | |
| JP2007018254A (ja) | 言語処理装置 | |
| JPH09288580A (ja) | ソースプログラムの最適化装置および最適化方法 | |
| JPH09288595A (ja) | 演算処理装置 | |
| JP2000132405A (ja) | インライン展開処理装置及び方法 | |
| JP2908184B2 (ja) | テキストファイル編集方法及び装置 | |
| JP2001125793A (ja) | コンパイラシステム及びコンパイル方法並びに記録媒体 | |
| JP3417960B2 (ja) | 文章校正支援方法および装置 | |
| JP3012618B1 (ja) | 被検査プログラムのデバグ方法とそのデバグ方式 | |
| JP3226172B2 (ja) | インライン展開システム | |
| JPH10240545A (ja) | 未定義変数検出の最適化コンパイラ装置 | |
| JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
| WO1997007452A1 (en) | Programmable compiler | |
| JPH01155438A (ja) | コンパイラ試験方式 | |
| JPH021027A (ja) | 圧縮形式ソースプログラムのコンパイル方式 | |
| JPH01140236A (ja) | プログラムの逆コンパイル方式 | |
| JPH03260865A (ja) | ベクトル化処理方式 | |
| JPH08234995A (ja) | プログラム変換装置 | |
| JPH05204705A (ja) | 未定義変数検出処理方法 | |
| JPH03186933A (ja) | 言語処理システムのシンボル処理方式 | |
| JPH06242958A (ja) | コンパイル方式 | |
| JPH1011299A (ja) | 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体 | |
| JP2002215437A (ja) | 構造化順編成ファイル |