JPH05127916A - アセンブラ - Google Patents

アセンブラ

Info

Publication number
JPH05127916A
JPH05127916A JP28579291A JP28579291A JPH05127916A JP H05127916 A JPH05127916 A JP H05127916A JP 28579291 A JP28579291 A JP 28579291A JP 28579291 A JP28579291 A JP 28579291A JP H05127916 A JPH05127916 A JP H05127916A
Authority
JP
Japan
Prior art keywords
machine language
processing
information
source program
symbol
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
JP28579291A
Other languages
English (en)
Inventor
Kiyotaka Saito
清隆 斉藤
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 JP28579291A priority Critical patent/JPH05127916A/ja
Publication of JPH05127916A publication Critical patent/JPH05127916A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】アセンブラの処理において、パス1処理101
で中間機械語情報104と機械語修正情報105とを生
成することにより、パス2処理で、ソース・プログラム
100を解析することなく、処理の高速化を図ること。 【構成】パス1処理101で中間機械語情報104と機
械語修正情報105を生成し、パス2処理103で、中
間機械語情報104と機械語修正情報105を入力する
ことにより、実行可能な機械語を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はアセンブラに関し、特に
計算機の機械語を生成するプログラムであるアセンブラ
の実行手段の改善によって処理性能を改善した手段に関
する。
【0002】
【従来の技術】従来技術として、図5,図6,図7を参
照して説明する。
【0003】図5は従来のアセンブラの基本形を示す流
れ図であり、パス1処理111とパス2処理113とで
構成されている。図5において、パス1処理111で
は、ソース・プログラム100を読み込み、1行ごとに
解析し、その1行の機械語の大きさを決定すると同時に
別の行で参照するのに便利なために名前付けされた位置
情報でありシンボルが記述されていた場合、そのシンボ
ル名と1行の機械語の大きさの累積値である実際の位置
との対応表であるシンボル・テーブル102を作成す
る。
【0004】ソース・プログラム100を全て読み込み
処理を完了すると、パス2処理113に移る。パス2処
理(113)では、再度ソース・プログラム(100)
を最初から読み込み1行ごとに解析し、もしその行に他
の機械語の位置を参照するシンボルが現れた場合にシン
ボル・テーブル102から実際の位置を取り出し、実行
可能な機械語を生成しながら、ソース・プログラム10
0の最後まで繰り返し、その実行可能な機械語の列を実
行可能機械語106として出力する。
【0005】次に図6と図7とで、従来のパス1処理1
11(図5)と従来のパス2処理112(図5)の詳細
を説明する。図6は、従来のパス1処理111の詳細例
を示す流れ図であり、図8は従来のパス2処理113の
詳細例を示す流れ図である。
【0006】図6において、1行読み込み処理200で
ソース・プログラム100を1行読み込む。次にソース
・プログラム終了確認処理201で全てのソース・プロ
グラム100の処理が完了したかを判断し、完了してい
た場合、パス1処理111を終了する。
【0007】まだソース・プログラム100が残ってい
た場合、その1行の解析を1行解析処理212で行な
い、その機械語の大きさ及び、シンボル定義の有無を得
る。もしシンボル定義が有れば、シンボル・テーブル登
録処理203でシンボル・テーブル102に該当するシ
ンボル名とその実際の位置を今までの機械語の大きさの
累積値から得て登録する。
【0008】次に累積値更新処理207で、累積値にそ
の時点で得られた1行の機械語の大きさを加える。前記
の一連の処理をソース・プログラム100が終了するま
で繰り返す。
【0009】次に図7において、従来のパス2処理11
3(図5)の処理の詳細例について説明する。1行読み
込み処理700でソース・プログラム100をパス1処
理111と同様に1行読み込む。次にソース・プログラ
ム終了確認処理701で全てのソース・プログラム10
0の処理が完了したかを判断し、完了の場合、パス2処
理113を終了する。
【0010】まだソース・プログラム100が残って場
合、その1行の解析を1行解析処理702で行ない、シ
ンボル参照の有無を得ると同時に、シンボルによって生
成される機械語部分以外の機械語部分を生成する。もし
シンボル参照が有れば、シンボル・テーブル参照処理7
03によりシンボルの具体値を得る。
【0011】次に機械語生成処理704でその1行の最
終的機械語を生成し、機械語出力処理705で機械語を
出力する。前記の処理をパス1処理111と同様に繰り
返す。
【0012】
【発明が解決しようとする課題】従来のアセンブラにお
いては、従来の技術で説明しているパス1処理111内
での1行解析処理212及びパス2処理113内での1
行解析処理702が、主要な部分であり、処理で最も時
間がかかる部分でもある。
【0013】しかるに、パス1処理111での1行解析
処理212での処理の結果は唯一解析した1行の機械語
の大きさを得る目的にしか使用されていない。しかしな
がら機械語の大きさを得るには、機械語を生成してその
大きさを得る必要からパス1処理の1行解析処理212
はパス2処理113での機械語を生成する情報を得る1
行解析処理702とほぼ同様の処理時間が必要となる。
その結果、従来の技術では、ソース・プログラム100
を2度解析する無駄を余儀なくされており、アセンブラ
の性能を阻害する大きな要因になっていた。
【0014】本発明の目的は、前記要因を解決し、性能
が阻害されないようにしたアセンブラを提供することに
ある。
【0015】
【課題を解決するための手段】本発明のアセンブラの構
成は、ソース・プログラム内で他の機械語の位置情報を
参照する文が現れた場合にはその文が現れる以前に参照
された位置情報の値が確定している時は最終的な機械語
で構成され、確定していない時は不完全な機械語で構成
される中間機械語情報と、前記不完全な機械語の修正に
必要な機械語修正情報とを生成し出力する第1の手段
と、前記位置情報を定義する文が現れた場合にはその位
置情報のシンボル・テーブルを生成する第2の手段とを
有し、前記ソース・プログラムの1行の処理ごとに前記
第1,第2の手段で実行する第1のパス処理手段と、前
記最終的機械語と前記不完全な機械語と前記修正情報と
前記シンボル・テーブルとを入力して機械語のプログラ
ムを生成する第2のパス処理手段とを備えたことを特徴
とする
【実施例】図1は本発明の一実施例のアセンブラの基本
形を示す流れ図である。図1は図5の従来の技術の例に
対応させて示した流れ図である。
【0016】図1において、本実施例は、パス1処理1
01で中間機械語情報104と機械語修正情報105を
出力する点が追加され、パス2処理103でソース・プ
ログラム100を入力せずにパス1処理101が出力し
た中間機械語情報104と機械語修正情報105を入力
している点が異なる。その他は、図5と同様である。
【0017】次に図2,図3で図1のパス1処理101
とパス2処理103の詳細を説明する。図2は図1のパ
ス1処理101の詳細例を示す流れ図であり、図3は図
1のパス2処理103の詳細例を示す流れ図である。
【0018】図2において、1行読み込み処理200で
ソース・プログラム100を1行読み込む。次にソース
・プログラム終了確認処理201で全てのソース・プロ
グラム100の処理が完了したかを判断し、完了してい
た場合、パス1処理101を終了する。
【0019】まだソース・プログラム100が残ってい
た場合、その1行の解析を1行解析処理202で行な
い、その機械語のシンボルによって生成される部分以外
の機械語部分と機械語の大きさ及び、シンボル定義の有
無及び、シンボル参照の有無を検出する。
【0020】次にシンボル参照が有れば、シンボル・テ
ーブル登録処理203でシンボル・テーブル102に該
当するシンボル名とその実際の位置を今までの機械語の
大きさの累積値から得て登録する。
【0021】次にシンボル参照が有れば、参照シンボル
確定判断処理204で該当するシンボル名が既に登録さ
れているかどうかを判断し登録されていなければ、機械
語修正情報出力処理205でシンボルによって生成され
る機械語の部分を除いた不完全な機械語をパス2処理1
03によって完成された機械語に修正するに必要な情報
を機械語修正情報105として出力する。
【0022】次に、中間機械語情報出力処理206で不
完全または完全な機械語を中間機械語情報104として
出力する。
【0023】最後に従来の例と同様に、累積値更新処理
207を行ない、ソース・プログラム100が終了する
まで前記の一連の処理を繰り返す。
【0024】次に図3で図1のパス処理103について
説明する。図1のパス2処理103は従来の技術のパス
2処理113(図5)とは大幅に変わったものである。
【0025】まず、修正情報1組み読み込み処理300
により1機械語に対する修正情報を読み込む。修正情報
の例として図4に1例を示す。図4は1機械語に対する
修正情報の形式を示している。機械語修正情報105
は、この1組みの形式の表が修正すべき機械語の個数連
続して並んだものである。
【0026】図4において、修正すべき位置情報401
は、中間機械語情報のとの位置が不完全であるかを示す
情報で有り、その位置に対応するシンボル名402は対
応する位置に対して、何というシンボル名が対応してい
るかを知らせる情報である。
【0027】図3において、1組みの修正情報を読み込
んだ後に修正情報終了確認処理301で修正情報が終わ
ったかを確認し修正情報がまだ有る場合、中間機械語が
その修正情報の位置まで読まれたかを確認する修正位置
確認処理302によって修正位置まで、中間機械語情報
を実行可能機械語にそのままコピーする。
【0028】この処理が中間機械語情報読み込み処理3
03と実行可能機械語出力処理304で実現される。ま
た、読み込まれた中間機械語の位置が修正すべき位置で
あることが、修正位置確認処理302で確認されると、
中間機械語完成処理305によって対応するシンボル名
からシンボル・テーブルを参照して実際の位置を取り出
し、その値で中間機械語を実現可能機械語に修正して、
実行可能機械語出力処理306で機械語を出力する。
【0029】この実行可能機械語出力処理306は前記
の処理304の処理と同じものである。その後、さらに
次の修正情報を読み出すために修正情報1組み読み込み
処理300に処理が移る。また、修正情報が修正情報終
了確認処理301で修正情報がなくなったと判断される
と、以降の中間機械語には、修正すべき不完全機械語は
ないと判断されるため、中間機械語読み処理307と中
間機械語情報終了確認処理308と実行可能機械語出力
処理309で残りの中間機械語情報を全て実行可能機械
語にコピーする。
【0030】前記の処理307は前記処理303と、ま
た処理309は処理304と全く同じ処理である。
【0031】ここで分かるように、本発明のパス2処理
103は従来の技術のパス2処理113と比較して、処
理に時間がかかるソース・プログラム100の1行の解
析処理がないため、従来のパス2処理に比べはるかに高
速に実行出来る。
【0032】また、本発明のパス1処理101は従来の
技術のパス1処理111に対して少しの処理を追加した
に過ぎず、処理時間の追加の影響は少ない。
【0033】このように、本発明によれば、特定の文法
で記述された計算機のソース・プログラムを入力して実
行可能な機械語のプログラムを生成する機能を有するプ
ログラム(アセンブラ)において、前記ソース・プログ
ラム内で他の機械語の位置情報を参照する文が現れた場
合、その文が現れる以前に参照された位置情報の値が確
定している場合は最終的な機械語、確定していない場合
は不完全な機械語で構成される中間機械語情報と、前記
不完全な機械語を修正に必要な機械語修正情報とを生成
し出力する第1の手段と位置情報を定義する文が現れた
場合にその位置情報と実際の位置の対応表(シンボル・
テーブル)を生成する第2の手段を用いて、ソース・プ
ログラムの1行の処理ごとに実行する第1のステップ手
段と、前記最終的機械語と不完全な機械語と修正情報と
シンボル・テーブルを入力して機械語のプログラムを生
成する第2のステップ手段とを備えた事を特徴とするア
センプラが得られる。
【0034】
【発明の効果】以上の説明で明らかの如く、本発明のア
センブラによれば、処理速度が改善される効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例のアセンブラの基本形を示す
流れ図である。
【図2】図1のパス1処理の詳細を示す流れ図である。
【図3】図1のパス2処理の詳細を示す流れ図である。
【図4】図1の実施例の機械語修正情報の形式の例を示
すブロック図である。
【図5】従来の技術のアセンブラの基本形を示す流れ図
である。
【図6】従来の技術のパス1処理の詳細を示す流れ図で
ある。
【図7】従来の技術のパス2処理の詳細を示すブロック
図である。
【符号の説明】
100 ソース・プログラム 101,111 パス1処理 102 シンボル・テーブル 103,113 パス2処理 104 中間機械語情報 105 機械語修正情報 106 実行可能機械語 200,700 1行読み込み処理 201,701 ソース・プログラム終了確認処理 202,212,702 1行解析処理 203 シンボル・テーブル登録処理 204 参照シンボル確定判断処理 205 機械語修正情報出力処理 206 中間機械語情報出力処理 207 累積更新処理 300 修正情報1組み読み込み処理 301 修正情報終了確認処理 302 修正位置確認処理 303 中間機械語情報読み込み処理 304,309 実行可能機械語出力処理 305 中間機械語完成処理 306 実行可能機械語出力処理 307 中間機械語情報読み込み処理 308 中間機械語情報終了確認処理 401 修正すべき位置情報 402 その位置に対応するシンボル名 703 シンボル・テーブル参照処理 704 機械語生成処理 705 機械語出力処理

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ソース・プログラム内で他の機械語の位
    置情報を参照する文が現れた場合にはその文が現れる以
    前に参照された位置情報の値が確定している時は最終的
    な機械語で構成され、確定していない時は不完全な機械
    語で構成される中間機械語情報と、前記不完全な機械語
    の修正に必要な機械語修正情報とを生成し出力する第1
    の手段と、前記位置情報を定義する文が現れた場合には
    その位置情報のシンボル・テーブルを生成する第2の手
    段とを有し、前記ソース・プログラムの1行の処理ごと
    に前記第1,第2の手段で実行する第1のパス処理手段
    と、前記最終的機械語と前記不完全な機械語と前記修正
    情報と前記シンボル・テーブルとを入力して機械語のプ
    ログラムを生成する第2のパス処理手段とを備えたこと
    を特徴とするアセンブラ。
JP28579291A 1991-10-31 1991-10-31 アセンブラ Pending JPH05127916A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28579291A JPH05127916A (ja) 1991-10-31 1991-10-31 アセンブラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28579291A JPH05127916A (ja) 1991-10-31 1991-10-31 アセンブラ

Publications (1)

Publication Number Publication Date
JPH05127916A true JPH05127916A (ja) 1993-05-25

Family

ID=17696136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28579291A Pending JPH05127916A (ja) 1991-10-31 1991-10-31 アセンブラ

Country Status (1)

Country Link
JP (1) JPH05127916A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803805A1 (en) * 1996-04-25 1997-10-29 Nec Corporation Assembler

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803805A1 (en) * 1996-04-25 1997-10-29 Nec Corporation Assembler
US5960203A (en) * 1996-04-25 1999-09-28 Nec Corporation Assembler device and its assembling method for use in a microcomputer or other computer system

Similar Documents

Publication Publication Date Title
JPH05127916A (ja) アセンブラ
US6120552A (en) Method to exhibit parallelism for computer implementation of computational processing
JPS5922140A (ja) 対話型コンパイル方式
JP3337763B2 (ja) 図面説明文生成装置
JP3000878B2 (ja) アセンブラの処理方法
JPH01307832A (ja) コンパイラの原始プログラムの文法誤り自動修正方式
JP3082767B2 (ja) 翻訳リスト出力制御装置
JPH0353332A (ja) アセンブラのアセンブル処理方式
JP2908184B2 (ja) テキストファイル編集方法及び装置
JPH05204703A (ja) アセンブリ命令表示方式
JPH05204699A (ja) デバッグ時識別子探索方式
JPH0651993A (ja) アセンブル装置
JPH0359724A (ja) 翻訳システムにおけるエラー情報圧縮方式
JP2002032231A (ja) 文字コード変換方法
JPH02284239A (ja) 言語処理プログラムの実行方式
JPH04101229A (ja) コンパイルエラー表示制御方式
JPH05204658A (ja) 原始プログラム登録方式
JPH05324302A (ja) 言語処理プログラム処理装置
JPH05120226A (ja) コマンドパラメータ置換方式
JPH0895762A (ja) プログラム生成装置
JPH0816381A (ja) ソフトウェア改造支援装置および方法
JPH04273329A (ja) プログラム変換方式
JPH04273328A (ja) クロスリファレンスリスト生成方式
JPH0644081A (ja) コンパイラのエラーメッセージ出力方式
JPH0371231A (ja) ソースリスト作成方式