JPH0390931A - Rom化プログラムの生成方法 - Google Patents
Rom化プログラムの生成方法Info
- Publication number
- JPH0390931A JPH0390931A JP22589789A JP22589789A JPH0390931A JP H0390931 A JPH0390931 A JP H0390931A JP 22589789 A JP22589789 A JP 22589789A JP 22589789 A JP22589789 A JP 22589789A JP H0390931 A JPH0390931 A JP H0390931A
- Authority
- JP
- Japan
- Prior art keywords
- area
- program
- rom
- linker
- unchanged
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
ROM化プログラムの生成方法に関し、メモリの無駄領
域を無くして有効利用を図るとともに、ROM化プログ
ラムの生成に際して手作業を無くして能率を向上できる
ROM化プログラムの生成方法を提供することを目的と
し、非変更領域と変更領域を有するメモリ領域で複数の
オブジェクトプログラムをリンカにより結合処理してロ
ードモジュールを生成するとともに、リンカの結合処理
に際してプログラムのソースや定数等の非変更データに
ついては非変更領域に割り当て、変数および変更される
が初M(a’をもつ変数については変更領域に割り当て
、ロードモジュールに生成されたプログラムをROM化
するに際しては前記非変更パラメータおよび初期値をも
つ変数についてのみROMの内容として書き込み、RO
M化プログラムを生成するROM化プログラムの生成方
法において、前記初期値をもつ変数を非変更領域におけ
る非変更データの直後の特定シンボルで表示されるアド
レスから始まる領域に割り当てる工程と、該工程により
割り当てられた内容を含む非変更領域のデータをリンカ
の出力としてROM化プログラムを生成する工程と、を
含むように構成する。
域を無くして有効利用を図るとともに、ROM化プログ
ラムの生成に際して手作業を無くして能率を向上できる
ROM化プログラムの生成方法を提供することを目的と
し、非変更領域と変更領域を有するメモリ領域で複数の
オブジェクトプログラムをリンカにより結合処理してロ
ードモジュールを生成するとともに、リンカの結合処理
に際してプログラムのソースや定数等の非変更データに
ついては非変更領域に割り当て、変数および変更される
が初M(a’をもつ変数については変更領域に割り当て
、ロードモジュールに生成されたプログラムをROM化
するに際しては前記非変更パラメータおよび初期値をも
つ変数についてのみROMの内容として書き込み、RO
M化プログラムを生成するROM化プログラムの生成方
法において、前記初期値をもつ変数を非変更領域におけ
る非変更データの直後の特定シンボルで表示されるアド
レスから始まる領域に割り当てる工程と、該工程により
割り当てられた内容を含む非変更領域のデータをリンカ
の出力としてROM化プログラムを生成する工程と、を
含むように構成する。
本発明は、ROM化プログラムの生成方法に係り、詳し
くは、リンカがROM化するプログラムを生成する際の
メモリ配置を改良したROM化プログラムの生成方法に
関する。
くは、リンカがROM化するプログラムを生成する際の
メモリ配置を改良したROM化プログラムの生成方法に
関する。
ソフトウェアの開発において開発規模の大きなプログラ
ムは複数に分けて分割コンパイルされる。
ムは複数に分けて分割コンパイルされる。
この分割コンパイルは関数や変数が別ファイルになるた
め、単体のファイルでは解決できないシンボルが生じる
。これを解決するためにリンカを用い結合処理を行う。
め、単体のファイルでは解決できないシンボルが生じる
。これを解決するためにリンカを用い結合処理を行う。
こここに、1つもしくは2つ以上のオブジェクトプログ
ラムから1つの実行可能なプログラムを生成することを
リンクまたは連結編集といい、この処理をするプログラ
ムをリンカ(linker) と呼んでいる。
ラムから1つの実行可能なプログラムを生成することを
リンクまたは連結編集といい、この処理をするプログラ
ムをリンカ(linker) と呼んでいる。
リンカでは、実行可能なプログラムを生成する。
リンカは複数個のオブジェクトを入力とし、1つの実行
可能なプログラムを出力するもので、結合処理により未
解決のシンボルを検索し、それぞれを解決していく。未
解決シンボルが全て解決された状態で初めて実行可能な
プログラムが生成される。但し、未解決シンボルを解決
するためには各シンボルの位置関係が決定されている必
要がある。
可能なプログラムを出力するもので、結合処理により未
解決のシンボルを検索し、それぞれを解決していく。未
解決シンボルが全て解決された状態で初めて実行可能な
プログラムが生成される。但し、未解決シンボルを解決
するためには各シンボルの位置関係が決定されている必
要がある。
また、リンカに必要とされる機能の1つにメモリ配置の
機能がある。このメモリ配置の機能は、プログラムのソ
ースや定数のような「非変更領域」、変数のような「初
期値を持たない変更領域」、変更されるが、初期値を持
つ変数のような「初期値・を持つ変更領域」の3つに分
類し、各々を連続した領域に割り当てるものである。
機能がある。このメモリ配置の機能は、プログラムのソ
ースや定数のような「非変更領域」、変数のような「初
期値を持たない変更領域」、変更されるが、初期値を持
つ変数のような「初期値・を持つ変更領域」の3つに分
類し、各々を連続した領域に割り当てるものである。
ROM化においては初期値を持つ領域、すなわち、「非
変更領域」、「初期値を持つ変更領域」についてのみR
OMとして書き込む。
変更領域」、「初期値を持つ変更領域」についてのみR
OMとして書き込む。
本発明は、このようなROM化するプログラムを生成す
る際の方式を技術的背景としている。
る際の方式を技術的背景としている。
従来のROM化プログラムの生成方法について説明する
と、リンカを用いてROM化する場合には次のような方
法で行われる。第6図はそのプロセスを示す図である。
と、リンカを用いてROM化する場合には次のような方
法で行われる。第6図はそのプロセスを示す図である。
第6図に示すあるプログラム1がソースコード(Cod
e) 、定数(Const) 、初期値付きの変数(V
arl)、初期値なしの変更(Var2 )で構成され
、そのプログラム1を格納するメモリの構成が0000
(番地を指す。以下、同様)から2000までがRO
M、2000から4000までがRAMで構成されてい
るとする。
e) 、定数(Const) 、初期値付きの変数(V
arl)、初期値なしの変更(Var2 )で構成され
、そのプログラム1を格納するメモリの構成が0000
(番地を指す。以下、同様)から2000までがRO
M、2000から4000までがRAMで構成されてい
るとする。
このプログラム1においてCodd + Con5tは
非変更領域であるためROM領域のooooから200
0に、Varl + Var2は変更の可能性があるた
めRA M a域の2000番地以降に割り付ける(第
6図(a)参照)。次いで、リンカへの出力はこの割り
付は通りに出力される(第6図(b、)参照)。また、
ROMへの書き込みにおいては、非変更領域のCodd
。
非変更領域であるためROM領域のooooから200
0に、Varl + Var2は変更の可能性があるた
めRA M a域の2000番地以降に割り付ける(第
6図(a)参照)。次いで、リンカへの出力はこの割り
付は通りに出力される(第6図(b、)参照)。また、
ROMへの書き込みにおいては、非変更領域のCodd
。
Con5t 、及び初期値を持つ変更領域のVarlを
、それぞれ個別に書き込む(第6図(C)参照)。実行
時において2000番地からの領域はRAMである必要
があるため、Varlの領域はROM割り付は時に20
00番地からとは異なる領域に割り付ける必要がある。
、それぞれ個別に書き込む(第6図(C)参照)。実行
時において2000番地からの領域はRAMである必要
があるため、Varlの領域はROM割り付は時に20
00番地からとは異なる領域に割り付ける必要がある。
通常、ROMの割り付けは2000番地からの領域に出
力されたVarlの出力値をROMに書き込み、ROM
を割り付ける際に手作業で指定のアドレスにずらす方法
をとっている(第6図(d)参照)。
力されたVarlの出力値をROMに書き込み、ROM
を割り付ける際に手作業で指定のアドレスにずらす方法
をとっている(第6図(d)参照)。
また、実行時には2000番地からの領域にはVarl
の初期値が必要なため、プログラム実行の前にROMに
割り付けられたVarlの初期値を2000番地からの
領域にコピーしている(第6図(e)参照)。
の初期値が必要なため、プログラム実行の前にROMに
割り付けられたVarlの初期値を2000番地からの
領域にコピーしている(第6図(e)参照)。
なお、上記におけるリンカの処理としては大きく4つに
分かれ、第7.8図に示すフローチャートで表される。
分かれ、第7.8図に示すフローチャートで表される。
第7図は従来の一般的なリンカの処理を表すフローチャ
ート、第8図はロードモジュールの出力処理を表すフロ
ーチャートである。
ート、第8図はロードモジュールの出力処理を表すフロ
ーチャートである。
まず、ステップSlのオブジェクト入力ではリンク処理
すべきオブジェクトを全て入力し、外部参照テーブル、
外部定義テーブルを作成する。次いで、ステップS2の
領域の割り付けでは入力したオブジェクトに対し、指定
された領域を割り付ける。その後、ステップS3のシン
ボルの解決において外部参照などの未解決シンボルを解
決し、ロードモジュールを作成する。未解決シンボルが
全て解決されたならば、ステップS4のロードモジュー
ルの出力において、作成されたロードモジュールを出力
してリンカの処理を終了する。実際のロードモジュール
は複数又は1つのメモリイメージデータレコードにより
構成され、メモリイメージデータレコードは例えば第9
図のような形式になっている。この場合、 アドレス部2:メモリイメージのデータがロードされる
べきアドレスの情報 レコード長3:メモリイメージデータの長さメモリイメ
ージデータ4:展開されるメモリイメージのデータ(長
さは任意) で定義され、アドレス部2はその後に続(メモリイメー
ジのデータ4がロードされるべきアドレスを示し、レコ
ード長3はメモリイメージデータ4の長さを示す。した
がって、ロードモジュールの出力とは、このメモリイメ
ージデータレコードをを全て出力することになり、その
処理は第 図のフローチャートで示すように、ステップ
S、でセクションが終了するか否かを判別し、NOの時
はステップS6でセクションに属する全メモリのイメー
ジデータレコードを出力することで行われる。
すべきオブジェクトを全て入力し、外部参照テーブル、
外部定義テーブルを作成する。次いで、ステップS2の
領域の割り付けでは入力したオブジェクトに対し、指定
された領域を割り付ける。その後、ステップS3のシン
ボルの解決において外部参照などの未解決シンボルを解
決し、ロードモジュールを作成する。未解決シンボルが
全て解決されたならば、ステップS4のロードモジュー
ルの出力において、作成されたロードモジュールを出力
してリンカの処理を終了する。実際のロードモジュール
は複数又は1つのメモリイメージデータレコードにより
構成され、メモリイメージデータレコードは例えば第9
図のような形式になっている。この場合、 アドレス部2:メモリイメージのデータがロードされる
べきアドレスの情報 レコード長3:メモリイメージデータの長さメモリイメ
ージデータ4:展開されるメモリイメージのデータ(長
さは任意) で定義され、アドレス部2はその後に続(メモリイメー
ジのデータ4がロードされるべきアドレスを示し、レコ
ード長3はメモリイメージデータ4の長さを示す。した
がって、ロードモジュールの出力とは、このメモリイメ
ージデータレコードをを全て出力することになり、その
処理は第 図のフローチャートで示すように、ステップ
S、でセクションが終了するか否かを判別し、NOの時
はステップS6でセクションに属する全メモリのイメー
ジデータレコードを出力することで行われる。
しかしながら、このような従来のROM化プログラムの
生成方法にあっては、初期値付きの変数(Varl)を
ROM 領域内のある領域に書き込んでいるが、その領
域はプログラム開始時にRAM領域にコピーしなければ
らないため、このコピー処理をプログラム先頭に付加し
ている。したがって、プログラム作成時にはROM内の
初期値付きの変数(Varl)の開始位置が確定してい
る必要があるが、ソースコード(Code) 、定数(
Const)の大きさは結合処理が終了するまで不明で
ある。そのため、初期値付きの変数(Varl)は固定
領域(予めメモリコード(Code) %定数(Con
st)の大きさを予測し、その領域以降の領域、第6図
では1000番地から)に書き込んでいる。このとき、
Code、C。
生成方法にあっては、初期値付きの変数(Varl)を
ROM 領域内のある領域に書き込んでいるが、その領
域はプログラム開始時にRAM領域にコピーしなければ
らないため、このコピー処理をプログラム先頭に付加し
ている。したがって、プログラム作成時にはROM内の
初期値付きの変数(Varl)の開始位置が確定してい
る必要があるが、ソースコード(Code) 、定数(
Const)の大きさは結合処理が終了するまで不明で
ある。そのため、初期値付きの変数(Varl)は固定
領域(予めメモリコード(Code) %定数(Con
st)の大きさを予測し、その領域以降の領域、第6図
では1000番地から)に書き込んでいる。このとき、
Code、C。
nst領域から固定番地のVarl領域までの間の領域
5 (第6図(d)のハンチング部分)が設けられるた
め、この領域5がメモリの有効利用という点で無駄にな
るという問題点があった。
5 (第6図(d)のハンチング部分)が設けられるた
め、この領域5がメモリの有効利用という点で無駄にな
るという問題点があった。
また、従来は出力するに際し、Varlのような初期値
を持つ領域はROMへの書き込み後、手作業でROMの
割り付はアドレスをずらしていることから(第6図(c
)(d)参照)、煩わしい手作業が必要で面倒であり能
率が悪いという問題点があった。
を持つ領域はROMへの書き込み後、手作業でROMの
割り付はアドレスをずらしていることから(第6図(c
)(d)参照)、煩わしい手作業が必要で面倒であり能
率が悪いという問題点があった。
そこで本発明は、リンカの結合処理に際しては初期値を
もつ変数を本来の位置(変更領域)に割り当て、ロード
モジュールを出力する際には初1朋値を持つ変数の初期
値を非変更領域の直後に移動して出力することにより、
メモリの無駄領域を無くして有効利用を図るとともに、
ROM化プログラムの生成に際して手作業を無くして能
率を向上できるROM化プログラムの生成方法を提供す
ることを目的としている。
もつ変数を本来の位置(変更領域)に割り当て、ロード
モジュールを出力する際には初1朋値を持つ変数の初期
値を非変更領域の直後に移動して出力することにより、
メモリの無駄領域を無くして有効利用を図るとともに、
ROM化プログラムの生成に際して手作業を無くして能
率を向上できるROM化プログラムの生成方法を提供す
ることを目的としている。
本発明によるROM化プログラムの生成方法は上記目的
達成のため、非変更領域と変更領域を有するメモリ領域
で複数のオブジェクトプログラムをリンカにより結合処
理してロードモジュールを生成するとともに、リンカの
結合処理に際してプログラムのソースや定数等の非変更
データについては非変更領域に割り当て、変数および変
更されるが初期値をもつ変数については変更領域に割り
当て、ロードモジュールに生威されたプログラムをRO
M化するに際しては前記非変更パラメータおよび初期値
をもつ変数についてのみROMの内容として書き込み、
ROM化プログラムを生成するROM化プログラムの生
成方法において、前記初期値をもつ変数を非変更領域に
おける非変更データの直後の特定シンボルで表示される
アドレスから始まる領域に割り当てる工程と、該工程に
より割り当てられた内容を含む非変更領域のデータをリ
ンカの出力としてROM化プログラムを生成する工程と
、を含むようにしている。
達成のため、非変更領域と変更領域を有するメモリ領域
で複数のオブジェクトプログラムをリンカにより結合処
理してロードモジュールを生成するとともに、リンカの
結合処理に際してプログラムのソースや定数等の非変更
データについては非変更領域に割り当て、変数および変
更されるが初期値をもつ変数については変更領域に割り
当て、ロードモジュールに生威されたプログラムをRO
M化するに際しては前記非変更パラメータおよび初期値
をもつ変数についてのみROMの内容として書き込み、
ROM化プログラムを生成するROM化プログラムの生
成方法において、前記初期値をもつ変数を非変更領域に
おける非変更データの直後の特定シンボルで表示される
アドレスから始まる領域に割り当てる工程と、該工程に
より割り当てられた内容を含む非変更領域のデータをリ
ンカの出力としてROM化プログラムを生成する工程と
、を含むようにしている。
〔作用)
本発明では、初期値をもつ変数はリンカの結合処理の段
階では本来の位置(変更領域)に割り当てられ、その後
の出カニ程で非変更領域における非変更データの直後の
特定シンボルで表示されるアドレスから始まる領域に割
り当てられ、そして非変更領域のデータが全てそのまま
ROMに書き込むべきデータとしてROM化プログラム
が生成される。
階では本来の位置(変更領域)に割り当てられ、その後
の出カニ程で非変更領域における非変更データの直後の
特定シンボルで表示されるアドレスから始まる領域に割
り当てられ、そして非変更領域のデータが全てそのまま
ROMに書き込むべきデータとしてROM化プログラム
が生成される。
したがって、非変更領域においてはデータの領域の連な
りに無駄な部分がなくなり、また、リンカにより出力さ
れたデータをそのままROMに書き込むべきデータとす
るのみで目的とするROM化プログラムの生成が可能と
なり、能率が向上する。
りに無駄な部分がなくなり、また、リンカにより出力さ
れたデータをそのままROMに書き込むべきデータとす
るのみで目的とするROM化プログラムの生成が可能と
なり、能率が向上する。
以下、本発明を図面に基づいて説明する。
第1〜5図は本発明に係るROM化プログラムの生成方
法の一実施例を示す図である。第1図はROM化プログ
ラムの生成方法を実現する装置の全体構成図であり、こ
の図において、11は各種の演算処理を行う中央演算装
置で、例えばある言語処理系のソースプログラムをコン
パイルしてオブジェクトプログラム12を生威し、これ
を外部記憶装置13に格納するとともに、リンカの作業
領域としてメモリ14を使用し、リンカにより複数のオ
ブジェクトプログラムを連結し、例えば外部参照される
アドレスを調べ、空白の部分を埋めて実行可能なプログ
ラムをロードモジュール15として生威し外部記憶装置
13に格納する。
法の一実施例を示す図である。第1図はROM化プログ
ラムの生成方法を実現する装置の全体構成図であり、こ
の図において、11は各種の演算処理を行う中央演算装
置で、例えばある言語処理系のソースプログラムをコン
パイルしてオブジェクトプログラム12を生威し、これ
を外部記憶装置13に格納するとともに、リンカの作業
領域としてメモリ14を使用し、リンカにより複数のオ
ブジェクトプログラムを連結し、例えば外部参照される
アドレスを調べ、空白の部分を埋めて実行可能なプログ
ラムをロードモジュール15として生威し外部記憶装置
13に格納する。
16は端末機器で、例えばキーボードにより構成され、
端末機器16の上にはCRT等からなるデイスプレィ1
7が設置されている。
端末機器16の上にはCRT等からなるデイスプレィ1
7が設置されている。
以上の構成において、第2図はリンカ処理のフローチャ
ートであり、また第3図はROM化プログラムの生成プ
ロセスを示す図である。
ートであり、また第3図はROM化プログラムの生成プ
ロセスを示す図である。
第2図において、ステップS11でリンカ処理すべきオ
ブジェクトを入力し、ステップSI2で指定された領域
を割り付ける。これらのステップ処理は従来例と同様で
あり、そのプロセスは第3図(a)のように示される。
ブジェクトを入力し、ステップSI2で指定された領域
を割り付ける。これらのステップ処理は従来例と同様で
あり、そのプロセスは第3図(a)のように示される。
次いで、ステップSでROM化を行うか否かを判別し、
ROM化を行うときはステップS、に進み、そうでない
ときはステップSI4をジャンプしてステップSISに
進む。
ROM化を行うときはステップS、に進み、そうでない
ときはステップSI4をジャンプしてステップSISに
進む。
ステップS、では特定シンボルの生成、すなわち領域を
割り付けた後の処理として特定シンボル(Varls)
に、ソースコード(Code)、定数(Const)領
域の直後のアドレスを割り当てて、この情報を外部定義
テーブルに加える(第3図(b)参照)。
割り付けた後の処理として特定シンボル(Varls)
に、ソースコード(Code)、定数(Const)領
域の直後のアドレスを割り当てて、この情報を外部定義
テーブルに加える(第3図(b)参照)。
その後、ステップSI5でシンボルの解決処理を行う。
このときの特徴としては、特定のシンボル(Varls
)を作成するだけで実際の領域を変更するわけではない
。領域は指定された領域のままシンボルの解決処理を行
う。領域の変更は、この次に記述するロードモジュール
の出力処理において行う。
)を作成するだけで実際の領域を変更するわけではない
。領域は指定された領域のままシンボルの解決処理を行
う。領域の変更は、この次に記述するロードモジュール
の出力処理において行う。
次いで、ステップS16のロードモジュール出力処理で
は、領域をずらす処理を行う。この処理の詳細は第4図
のフローチャートで示される。まず、ステ・7プS21
で処理をしているセクションが終了か否かを判別し、終
了していないときはステップS2□で現在リンク処理を
しているオブジェクトがROM化を行い、かつ、出力セ
クションが初期値を持つ変数領域(Varl)であるか
否かを判別し、YESのときはステップS23でメモリ
イメージデータレコードのアドレス部をソースコード(
Code)、定数(Const)領域の直後に変更する
。これにより、出力するロードモジュールの構成はソー
スコード(Code)、定数(Const) 、初期値
を持つ変数(Varl)の各領域が連続して配置される
。なお、第3図(a)の割り付けを例にすると、シンボ
ルの解決が終了した時点でのメモリイメージデータレコ
ードは第5図(a)のように示される。次いで、ステッ
プSZ4でセクションに属する全メモリイメージデータ
レコードの出力処理を行う。一方、ステップS2□でN
oのときはステップS23をジャンプしてステップSZ
4に進む。したがって、ステップSzaではロードモジ
ュールの出力処理となり、この出力の際に、Code
、 Con5t (第1.第2番目のメモリイメージデ
ータレコード)に関してはアドレス部の変更なしに出力
し、Varlに関してはアドレス部を2000からコー
ド、定数領域の直後のアドレスである0FOOに変更し
、出力する。この状態は第5図(b)のように示される
。
は、領域をずらす処理を行う。この処理の詳細は第4図
のフローチャートで示される。まず、ステ・7プS21
で処理をしているセクションが終了か否かを判別し、終
了していないときはステップS2□で現在リンク処理を
しているオブジェクトがROM化を行い、かつ、出力セ
クションが初期値を持つ変数領域(Varl)であるか
否かを判別し、YESのときはステップS23でメモリ
イメージデータレコードのアドレス部をソースコード(
Code)、定数(Const)領域の直後に変更する
。これにより、出力するロードモジュールの構成はソー
スコード(Code)、定数(Const) 、初期値
を持つ変数(Varl)の各領域が連続して配置される
。なお、第3図(a)の割り付けを例にすると、シンボ
ルの解決が終了した時点でのメモリイメージデータレコ
ードは第5図(a)のように示される。次いで、ステッ
プSZ4でセクションに属する全メモリイメージデータ
レコードの出力処理を行う。一方、ステップS2□でN
oのときはステップS23をジャンプしてステップSZ
4に進む。したがって、ステップSzaではロードモジ
ュールの出力処理となり、この出力の際に、Code
、 Con5t (第1.第2番目のメモリイメージデ
ータレコード)に関してはアドレス部の変更なしに出力
し、Varlに関してはアドレス部を2000からコー
ド、定数領域の直後のアドレスである0FOOに変更し
、出力する。この状態は第5図(b)のように示される
。
以上のフロー処理に基づ<ROM化プログラムの生成を
わかりやすく説明するために、第3図を参照して述べる
と、いま、従来例と同様に、あるプログラム1がソース
コード(Code) 、定数(C。
わかりやすく説明するために、第3図を参照して述べる
と、いま、従来例と同様に、あるプログラム1がソース
コード(Code) 、定数(C。
n5t)、初期値付きの変数(Varl) 、初期値な
しの変数(Var2)で構成され、そのプログラム1を
格納するメモリの構成がoooo番地から2000番地
までがROM、2000番地から4000番地までがR
AMで構成されているとする。リンカにおいては第3図
(a)に示すように従来と同様のメモリ割り付げを行う
。リンカの出力では、本実施例の1つの機能である、結
合処理時と出力時とで異なる領域に割り付ける機能を用
いて、Code 、 Con5tの領域の直後にVar
lを出力する(第3図(b)参照)。ROMへの書き込
みにおいてはこの出力された連続する3つの領域をその
まま書き込む(第3図(c)参照)。ROMに書き込ん
だ状態が割り付けられると状態と同じであるため、その
まま、ROMを割り付ける(第3図(d)参照)。次い
で、従来例と同様にプログラム実行の前にROMに割り
付けられたVarlの初g値を2000番地からの領域
にコピーシている(第3図(e)参照)。ここで、この
コピー処理において特定シンボルを用いることにより、
ROM上のVarlの初期(Ii!領域の先頭アドレス
を用いることができる。
しの変数(Var2)で構成され、そのプログラム1を
格納するメモリの構成がoooo番地から2000番地
までがROM、2000番地から4000番地までがR
AMで構成されているとする。リンカにおいては第3図
(a)に示すように従来と同様のメモリ割り付げを行う
。リンカの出力では、本実施例の1つの機能である、結
合処理時と出力時とで異なる領域に割り付ける機能を用
いて、Code 、 Con5tの領域の直後にVar
lを出力する(第3図(b)参照)。ROMへの書き込
みにおいてはこの出力された連続する3つの領域をその
まま書き込む(第3図(c)参照)。ROMに書き込ん
だ状態が割り付けられると状態と同じであるため、その
まま、ROMを割り付ける(第3図(d)参照)。次い
で、従来例と同様にプログラム実行の前にROMに割り
付けられたVarlの初g値を2000番地からの領域
にコピーシている(第3図(e)参照)。ここで、この
コピー処理において特定シンボルを用いることにより、
ROM上のVarlの初期(Ii!領域の先頭アドレス
を用いることができる。
このようにして、ROMの無駄領域をなくして、ROM
割り付は時にアドレスをずらすという煩わしい作業をな
くすことができる。その結果、メモリの有効利用が図れ
るとともに、ROM化プログラム生成の能率を向上させ
ることができる。
割り付は時にアドレスをずらすという煩わしい作業をな
くすことができる。その結果、メモリの有効利用が図れ
るとともに、ROM化プログラム生成の能率を向上させ
ることができる。
本発明によれば、ROM化プログラムの生成に際してメ
モリ (非変更領域)の無駄な領域を無くして有効利用
を図ることができるとともに、煩わしい手作業を無くし
て能率を向上できるという効果が得られる。
モリ (非変更領域)の無駄な領域を無くして有効利用
を図ることができるとともに、煩わしい手作業を無くし
て能率を向上できるという効果が得られる。
第1〜5図は本発明に係るROM化プログラムの生成方
法の一実施例を示す図であり、第1図はそのROM化プ
ログラムの生成方法を実現する装置の全体構成図、 第2図はそのリンカ処理のフローチャート、第3図はそ
のプロセスを説明する図、 第4図はそのロードモジュール出力処理のフローチャー
ト、 第5図はそのメモリイメージデータレコードを示す図、 第6〜9図は従来のROM化プログラムの生成方法を示
す図であり、 第6図はそのプロセスを説明する図、 第7図はそのリンカ処理のフローチャート、第8図はそ
のロードモジュール出力、処理のフローチャート、 第9図はそのメモリイメージデータレコードを示す図で
ある。 1・・・・・・プログラム、 11・・−・・・中央演算装置、 12・・・・−・オブジェクトプログラム、13・・・
・・・外部記憶装置、 14・・・・−・メモリ、 15・−・・・・ロードモジュール、 16・・・・・・端末機器、 17・・・・・・デイスプレィ。 一実施例のリンカ処理のフローチャー 第2図 ト 231例のロードモジュール出力処理のフロチャート 第 図 従来のリンカ処理のフC−チャート 第 図 アドレス セクション長 一冥施例のメモリイメージデー 第 アドレス セクション長 一タレコードを示す図 図 従来のロードモジュール出力処理のフローチャート従来
の/モリイメージデータレニ ドを示す図 第 図
法の一実施例を示す図であり、第1図はそのROM化プ
ログラムの生成方法を実現する装置の全体構成図、 第2図はそのリンカ処理のフローチャート、第3図はそ
のプロセスを説明する図、 第4図はそのロードモジュール出力処理のフローチャー
ト、 第5図はそのメモリイメージデータレコードを示す図、 第6〜9図は従来のROM化プログラムの生成方法を示
す図であり、 第6図はそのプロセスを説明する図、 第7図はそのリンカ処理のフローチャート、第8図はそ
のロードモジュール出力、処理のフローチャート、 第9図はそのメモリイメージデータレコードを示す図で
ある。 1・・・・・・プログラム、 11・・−・・・中央演算装置、 12・・・・−・オブジェクトプログラム、13・・・
・・・外部記憶装置、 14・・・・−・メモリ、 15・−・・・・ロードモジュール、 16・・・・・・端末機器、 17・・・・・・デイスプレィ。 一実施例のリンカ処理のフローチャー 第2図 ト 231例のロードモジュール出力処理のフロチャート 第 図 従来のリンカ処理のフC−チャート 第 図 アドレス セクション長 一冥施例のメモリイメージデー 第 アドレス セクション長 一タレコードを示す図 図 従来のロードモジュール出力処理のフローチャート従来
の/モリイメージデータレニ ドを示す図 第 図
Claims (1)
- 【特許請求の範囲】 非変更領域と変更領域を有するメモリ領域で複数のオブ
ジェクトプログラムをリンカにより結合処理してロード
モジュールを生成するとともに、リンカの結合処理に際
してプログラムのソースや定数等の非変更データについ
ては非変更領域に割り当て、変数および変更されるが初
期値をもつ変数については変更領域に割り当て、 ロードモジュールに生成されたプログラムをROM化す
るに際しては前記非変更パラメータおよび初期値をもつ
変数についてのみROMの内容として書き込み、ROM
化プログラムを生成するROM化プログラムの生成方法
において、 前記初期値をもつ変数を非変更領域における非変更デー
タの直後の特定シンボルで表示されるアドレスから始ま
る領域に割り当てる工程と、該工程により割り当てられ
た内容を含む非変更領域のデータをリンカの出力として
ROM化プログラムを生成する工程と、を含むようにし
たことを特徴とするROM化プログラムの生成方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22589789A JPH0390931A (ja) | 1989-08-31 | 1989-08-31 | Rom化プログラムの生成方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22589789A JPH0390931A (ja) | 1989-08-31 | 1989-08-31 | Rom化プログラムの生成方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0390931A true JPH0390931A (ja) | 1991-04-16 |
Family
ID=16836597
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22589789A Pending JPH0390931A (ja) | 1989-08-31 | 1989-08-31 | Rom化プログラムの生成方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0390931A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10456786B2 (en) | 2013-03-12 | 2019-10-29 | Abbott Laboratories | Septums and related methods |
-
1989
- 1989-08-31 JP JP22589789A patent/JPH0390931A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10456786B2 (en) | 2013-03-12 | 2019-10-29 | Abbott Laboratories | Septums and related methods |
| US11731134B2 (en) | 2013-03-12 | 2023-08-22 | Abbott Laboratories | Septums and related methods |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01154267A (ja) | 入出力機器制御プログラムのアドレス解決方法 | |
| JPH01306923A (ja) | 異種言語間連絡方式 | |
| JP2927180B2 (ja) | 情報処理プログラムのデバッグ方法およびそのためのデバッガ | |
| US6175935B1 (en) | Software debugging method and recording medium to which debugging program has been recorded | |
| JP2000010791A (ja) | グロ―バルレジスタを初期化するための方法、コンピュ―タプログラム製品及び装置 | |
| JPH0390931A (ja) | Rom化プログラムの生成方法 | |
| JP2000122876A (ja) | 情報処理装置 | |
| JP3233541B2 (ja) | 複合計算機システムの入出力装置情報管理システム | |
| JPH0863421A (ja) | ハードウェア構成情報集中管理方式 | |
| JP7499966B2 (ja) | 制御装置、及び、アドレス管理方法 | |
| JPH01295332A (ja) | プログラム配置方式 | |
| JP2764358B2 (ja) | データ駆動型情報処理装置 | |
| KR100229567B1 (ko) | 오버레이 코딩시 좌표값과 텍스트값 생성방법 | |
| JPH03135630A (ja) | 命令スケジューリング方式 | |
| JP2669387B2 (ja) | データベース駆動によるプログラム自動生成システム | |
| JPS63285647A (ja) | 出力フアイル名の作成方式 | |
| JPH07129408A (ja) | 言語処理プログラムの実行方式 | |
| JP2000035882A (ja) | 関数呼び出しの手順を動的に変更する方法 | |
| JPH02140825A (ja) | プログラムの再配置処理方法 | |
| JPH05282134A (ja) | 分割ロードモジュール作成方式 | |
| JPH04205422A (ja) | プログラム自動翻訳結合及び選択方法 | |
| JP2014182711A (ja) | ビルドツール | |
| JPH04117523A (ja) | プログラム編集装置 | |
| JPS59121442A (ja) | 目的コ−ド生成処理方法 | |
| JPH052491A (ja) | プログラムローデイングにおけるシステム参照解決方式 |