JPH0415826A - ワンチップマイクロコンピュータ - Google Patents

ワンチップマイクロコンピュータ

Info

Publication number
JPH0415826A
JPH0415826A JP11948990A JP11948990A JPH0415826A JP H0415826 A JPH0415826 A JP H0415826A JP 11948990 A JP11948990 A JP 11948990A JP 11948990 A JP11948990 A JP 11948990A JP H0415826 A JPH0415826 A JP H0415826A
Authority
JP
Japan
Prior art keywords
instruction
instructions
program
branch
subroutine call
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
JP11948990A
Other languages
English (en)
Inventor
Kazuaki Shinkawa
新川 和明
Hideo Omae
英雄 大前
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.)
Rohm Co Ltd
Original Assignee
Rohm 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 Rohm Co Ltd filed Critical Rohm Co Ltd
Priority to JP11948990A priority Critical patent/JPH0415826A/ja
Publication of JPH0415826A publication Critical patent/JPH0415826A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 の 本発明は、ワンチップマイクロコンピュータに格納する
コンピュータプログラム(以下「プログラム」という)
のサイズの縮小化に関するものであり、更に詳しくは、
プログラムのサイズの縮小化のための命令セットと、そ
の命令セットの特徴を利用してプログラムのサイズを縮
小する方法に関するものである。
交」61改葉− 従来、ワンチップマイクロコンピュータにおいてサブル
ーチンコール命令及び分岐命令に対しプログラムカウン
タ相対アドレシングモード(以下「PC相対アドレシン
グモード」という)が使用できる場合があり、この場合
、サブルーチンコール命令及び分岐命令の飛び先が現在
のアドレス(プログラムカウンタに設定されているアド
レス)から所定範囲内にあるときは、前記サブルーチン
コール命令及び分岐命令のオペランドを短くすることが
できるので命令長も短くすることができる。
ところで、ワンチップマイクロコンピュータに格納する
プログラムで2にバイトや4にバイトといった大容量の
ものはアセンブラを用いて作成しているが、サブルーチ
ンコール命令及び分岐命令の飛び先を考慮しながらプロ
グラムを作成するのは、開発効率や保守性等の点で現実
的でない。このため、従来のワンチップマイクロコンピ
ュータでは、サブルーチンコール゛命令及び分岐命令に
ついては、プログラムを格納するメモリの全領域を飛び
先として指定可能なオペランドを有する機械語命令(以
下「ロング命令」という)に統一し、ロング命令のみを
提供していた。
+3でと したがって、サブルーチンコール命令又は分岐命令の飛
び先が所定範囲内であって本来1語長の命令(以下、こ
の1語長の機械語命令を「ショート命令」といい、これ
に対応するアセンブラ命令を「ローカル命令」という)
が使用できる場合でもロング命令(以下、これに対応す
るアセンブラ命令を「グローバル命令」という)を使用
してプログラムが構成されるため、プログラムサイズが
増加する。ところが、ワンチップマイクロコンピュータ
は、通常、制御用として各種の機器に組み込んで使用さ
れ、そのプログラムはチップ内のROMに格納されので
、プログラムサイズの縮小化に対する要求が強い。
そこで本発明では、プログラムサイズを縮小できる命令
セットを備えたワンチップマイクロコンピュータと、そ
の命令セットの特徴を利用して自動的にプログラムのサ
イズを縮小化する方法を提供することを目的とする。
るための 上記目的を達成するため本発明では、サブルーチンコー
ル命令及び分岐命令に対してプログラムカウンタ相対ア
ドレシングモードが使用可能なワンチップマイクロコン
ピュータにおいて、サブルーチンコール命令及び分岐命
令のそれぞれにに対して1語長の命令と2語長以上の命
令の2種類の命令を備えた構成としている。
また、アセンブリ言語により記述された第1請求項記載
のマイクロコンピュータ用のコンピュータプログラムの
サイズを縮小化する方法において、前記コンピュータプ
ログラムからサブルーチンコール命令及び分岐命令を探
し出すステップと、見つかったサブルーチンコール命令
又は分岐命令の飛び先のアドレスをプログラムカウンタ
相対アドレシングモードで表現したときのアドレス値が
、1語長命令のオペランドで表現可能な所定範囲内か否
かを判断するステップと、 前記判断の結果、前記アドレス値が前記所定範囲内の場
合は前記サブルーチンコール命令又は分岐命令を内容的
に等価な1語長命令に置き換え、前記アドレス値が前記
所定範囲内にない場合は命令の置き換えを行なわずに元
の命令のままとするステップと・ を含む構成としている。
負辷−用一 上記構成のワンチップマイクロコンピュータによると、
サブルーチンコール命令及び分岐命令について1語長命
令と2語長以上の命令とを使い分けることによりプログ
ラムサイズを縮小することができる。
しかも、上記構成の縮小化方法によれば、アセンブリ言
語によるプログラム作成段階では、グローバル命令のみ
使用することによりサブルーチンコール命令及び分岐命
令の飛び先の範囲を意識せずにプログラムを作成するこ
とができる。そして、プログラム作成後に上記構成の縮
小化方法を適用し、プログラムの処理内容の同一性を保
持しつつ、そのプログラムに含まれる2語長以上のサブ
ルーチンコール命令及び分岐命令のうち1語長命令と置
き換え可能なものについて置き換えを行い、プログラム
サイズを縮小することができる。
ス」1例− 以下、本発明の一実施例について図面を参照しつつ説明
する。
第1図は、本発明を実施したワンチップマイクロコンピ
ュータの分岐命令の命令形式を示したものであり、同図
(a)はショート命令の命令形式、同図(b)はロング
命令の命令形式をそれぞれ示している。なお、サブルー
チンコール命令の命令形式も第1図に示した命令形式と
同一であり、オペレーションコードが異なるのみである
ので、以下では分岐命令を例に挙げて説明する。
本実施例のワンチップマイクロコンピュータのショート
分岐命令の命令長は1バイトであり、第1図(a)に示
すように、上位2ビツト(第6ビツト及び第7ビツト)
はオペレーションコードを表わし、下位6ビツト(第0
ビツト〜第5ビツト)はオペランドを表わしている。こ
の上位2ビツトのオペレーションコードは、ショート命
令/ロング命令の種別も含めた命令の操作内容を指定す
るものであり、この場合はショート分岐命令を表わす所
定のコードとなっている。そして、下位6ビツトのオペ
ランドにより、ショート分岐命令の飛び先のアドレスが
PC相対アドレシングモードで指定される。他方、ロン
グ分岐命令の命令長は2バイトであり、第1図(b)に
示すように、第1バイトの上位4ビツト(第4ビツト〜
第7ビツト)はオペレーションコードを表わし、下位4
ビツト(第0ビツト〜第3ビツト)はオペランドの一部
として割り当てられている。そして、第2バイトのすべ
てのビットはオペランドに割り当てられ、第1バイトの
下位4ビツトと合わせた計12ビットでオペランドを表
わしている。したがって、ロング分岐命令の場合、4ビ
ツトのオペレーションコードはロング分岐命令を表わす
所定のコードであり、12ビツトのオペランドにより、
ロング分岐命令の飛び先がPC相対アドレシングモード
で指定される。
上記のように本実施例では、ショート分岐命令のオペラ
ンドは6ビツトで構成されるので、第2図に示すような
64バイトの範囲(a)に飛び先がある場合はショート
分岐命令を使用することができ、その分岐命令はプログ
ラム内の1バイトの領域を使用するのみである。これに
対し、飛び先が64バイトの範囲を超える場合はロング
分岐命令を使用しなければならず、その分岐命令はプロ
グラム内の2バイトの領域を使用することになる。した
がって、必要に応じてショート分岐命令とロング分岐命
令を使いわけることによりプログラムサイズを縮小する
ことができる。
ところで、ワンチップマイクロコンピュータに格納する
プログラムで2にバイトや4にバイトといった大容量の
ものはアセンブラを用いて作成しているが、分岐命令の
飛び先を考慮してローカル分岐命令(ショート分岐命令
)を使用すべきかグローバル分岐命令(ロング分岐命令
)を使用すべきかを判断しながらプログラムを作成する
のは開発効率や保守性などの点で現実的でない。このた
め、従来通りプログラム作成段階では、サブルーチンコ
ール命令及び分岐命令については、ワンチップマイクロ
コンピュータ内のプログラムを格納するメモリの全領域
を飛び先として指定可能なオペランドを有するアセンブ
ラ命令すなわちグローバル命令のみを使用するものとす
る。
このようにして作成されたプログラムでは、その中に含
まれるサブルーチンコール命令及び分岐命令はすべてグ
ローバル命令であるが、これらの命令の中にはその飛び
先がローカル命令で表わせる範囲内(64バイト内)に
あるものも多い。例えば文献(飯塚肇、古谷立美、山口
喜教、 「マイクロコンピュータアーキテクチャJp、
94、オーム社、昭和57年)によれば、分岐のうちの
60%が64語内の範囲にあるとの調査結果が報告され
ている。そこで、前記プログラム内に含まれるサブルー
チンコール命令及び分岐命令のうちローカル命令で置き
換え可能なものを一定の手順に従って置き換えることに
より、プログラムサイズ(アセンブル後のオブジェクト
プログラムのサイズ)の縮小化を図る。以下、このよう
なプログラムサイズの縮小化方法について第3図に基い
て説明する。
第3図は上記プログラムサイズの縮小化方法の一例を示
すフローチャートである。ここで、本縮小化方法の適用
対象とするワンチップマイクロコンピュータのアセンブ
リ言語で記述されたプログラム(以下「入力プログラム
」という)において、サブルーチンコール命令及び分岐
命令の飛び先はラベルにより指定されるものとする。第
3図のフローチャートでは、まずステップ(#1)にお
いて、入力プログラムの先頭の命令を読み込んだ後、ス
テップ(#2)へ進む。ステップ(#2)では、読み込
んだ命令がサブルーチンコール命令又は分岐命令のいず
れかであるか否かを調べ、サブルーチンコール命令又は
分岐命令のいずれでもない場合はステップ(#6)へ進
む。ステップ(#6)では読み込んだ命令が入力プログ
ラムの最後尾の命令であるか否かを調べ、最後尾の命令
ならば本フローチャートの処理は終了する。最後尾の命
令でなければステップ(#7)で入力プログラムにおけ
る次のアドレスの命令を読み込んだ後、ステップ(#2
)へ戻る。そして、ステップ(#2)→(#6)→(#
7)→(#2)を繰り返し、入力プログラムからサブル
ーチンコール命令又は分岐命令を探し出す。
サブルーチンコール命令又は分岐命令が見つかればステ
ップ(#2)でYesと判定され、ステップ(#3)へ
進む。ステップ(#3)では、読み込んだ命令(見つか
ったサブルーチンコール命令又は分岐命令)の飛び先の
アドレスをPC相対アドレシングモードで表わした場合
のアドレス値(PC相対アドレス値)を求め、ステップ
(#4)へ進む。ステップ(#4)では飛び先が所定範
囲内であってそのPC相対アドレス値を6ビツトで表わ
せるか否か(1バイト長のショート命令で表わせるか否
か)を判定し、6ビツトで表わせる場合はステップ(#
5)で、入力プログラム中の読み込んだ命令の部分を内
容的に等価なローカル命令に置き換えた後ステップ(#
6)へ進み、6ビツトで表わせない場合はそのままステ
ップ(#6)へ進む。なお、入力プログラムは飛び先を
ラベルによって指定することができるアセンブリ言語で
記述されているので、ステップ(#5)での置き換えに
よって入力プログラム中の他の命令の飛び先指定を修正
する必要はない。ステップ(#6)では読み込んだ命令
が入力プログラムの最後尾の命令であるか否かを調べ、
最後尾の命令ならば本フローチャートの処理は終了する
。最後尾の命令でなければステップ(#7)で入力プロ
グラムにおける次のアドレスの命令を読み込んだ後ステ
ップ(#2)へ戻り、上記処理を繰り返す。
上述の説明かられかるように、本縮小化方法に基づくコ
ンピュータソフトウェア(以下「コンパクションソフト
」という)を作成するのは容易であり、コンパクション
ソフトによりワンチップマイクロコンピュータのプログ
ラムサイズの縮小化を自動的に行なうことができる。し
たがって、このようなコンパクションソフトにより、サ
ブルーチンコール命令及び分岐命令の飛び先の範囲を意
識せずにアセンブリ言語でプログラムを作成することが
できるのである。すなわち、飛び先の範囲を意識せずに
アセンブリ言語で記述されたプログラムをコンパクショ
ンソフトにより内容的に等価なアセンブラプログラムに
変換すると、アセンブルされた後のオブジェクトプログ
ラムのサイズが縮小化され、縮小化されたオブジェクト
プログラムがワンチップマイクロコンピュータ内のプロ
グラム格納用メモリ(通常、ROM)に格納される。
なお、上記においてコンパクションソフトはアセンブラ
とは独立したソフトウェアとして実現するものとしてい
るが、コンパクションソフトの機能をアセンブラに組み
込み、アセンブリ言語で記述されたプログラムをアセン
ブルする際に同時に縮小化も行なわれるように構成して
もよい。
見肌立菱釆 以上の通り本発明のワンチップマイクロコンビエータに
よれば、プログラムサイズの縮小化を図ることができる
。しかも、本発明のプログラムサイズ縮小化方法によれ
ば、サブルーチンコール命令及び分岐命令の飛び先の範
囲を意識せずにプログラムを作成することができる。そ
して、プログラム作成後は本発明のプログラムサイズ縮
小化方法を適用することにより、処理内容の同一性を保
持しつつプログラムサイズを縮小することができる。こ
れにより、ワンチップマイクロコンピュータのプログラ
ムの開発効率や保守性などを損なうことなくプログラム
サイズを縮小することができるため、チップサイズも縮
小化されコストダウンを図ることができる。さらに、1
命令当りの平均実行サイクル数も減少するので、ワンチ
ップマイクロコンピュータの処理の高速化にも寄与する
ト命令とロング命令とで飛び先の範囲が異なることを示
す図、第3図は本発明のプログラムサイズ縮小化方法の
一例を示すフローチャートである。
(a)・・・ショート命令の飛び先の範囲(64バイト
)、(b)・・・ロング命令の飛び先の範囲(4にバイ
ト)。

Claims (2)

    【特許請求の範囲】
  1. (1)サブルーチンコール命令及び分岐命令に対してプ
    ログラムカウンタ相対アドレシングモードが使用可能な
    ワンチップマイクロコンピュータにおいて、 サブルーチンコール命令及び分岐命令のそれぞれにに対
    して1語長の命令と2語長以上の命令の2種類の命令を
    備えたことを特徴とするワンチップマイクロコンピュー
    タ。
  2. (2)アセンブリ言語により記述された第1請求項記載
    のマイクロコンピュータ用のコンピュータプログラムの
    サイズを縮小化する方法において、前記コンピュータプ
    ログラムからサブルーチンコール命令及び分岐命令を探
    し出すステップと、見つかつたサブルーチンコール命令
    又は分岐命令の飛び先のアドレスをプログラムカウンタ
    相対アドレシングモードで表現したときのアドレス値が
    、1語長命令のオペランドで表現可能な所定範囲内か否
    かを判断するステップと、 前記判断の結果、前記アドレス値が前記所定範囲内の場
    合は前記サブルーチンコール命令又は分岐命令を内容的
    に等価な1語長命令に置き換え、前記アドレス値が前記
    所定範囲内にない場合は命令の置き換えを行なわずに元
    の命令のままとするステップと、 を含むことを特徴とするコンピュータプログラムサイズ
    の縮小化方法。
JP11948990A 1990-05-08 1990-05-08 ワンチップマイクロコンピュータ Pending JPH0415826A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11948990A JPH0415826A (ja) 1990-05-08 1990-05-08 ワンチップマイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11948990A JPH0415826A (ja) 1990-05-08 1990-05-08 ワンチップマイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0415826A true JPH0415826A (ja) 1992-01-21

Family

ID=14762538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11948990A Pending JPH0415826A (ja) 1990-05-08 1990-05-08 ワンチップマイクロコンピュータ

Country Status (1)

Country Link
JP (1) JPH0415826A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209079B1 (en) 1996-09-13 2001-03-27 Mitsubishi Denki Kabushiki Kaisha Processor for executing instruction codes of two different lengths and device for inputting the instruction codes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209079B1 (en) 1996-09-13 2001-03-27 Mitsubishi Denki Kabushiki Kaisha Processor for executing instruction codes of two different lengths and device for inputting the instruction codes
US6463520B1 (en) 1996-09-13 2002-10-08 Mitsubishi Denki Kabushiki Kaisha Processor for executing instruction codes of two different lengths and device for inputting the instruction codes

Similar Documents

Publication Publication Date Title
US5115500A (en) Plural incompatible instruction format decode method and apparatus
KR20010043826A (ko) 마이크로 컨트롤러 명령어 집합
JPH0844557A (ja) データ処理装置
KR19990036893A (ko) 다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법
JPS6122817B2 (ja)
JPH0415826A (ja) ワンチップマイクロコンピュータ
CA2186862A1 (en) Apparatus and method for updating information in a writable microcode control store
JPH113105A (ja) プログラマブルコントローラのプログラミング装置
JP2003076558A (ja) プログラム実行制御方法及びプログラム実行制御プログラム
US10817288B2 (en) Combined instruction for addition and checking of terminals
JPH11259308A (ja) プログラマブルコントローラ
JP3413860B2 (ja) デバッグ方式
EP1249756B1 (en) Management of co-processor information by integrating non-program information with program information
JPS58213347A (ja) マイクロプロセツサ
JPS61264444A (ja) 中央処理装置のデ−タ処理方式
JPS603656B2 (ja) 計算機のメモリ拡張方式
JP2002132499A (ja) データ処理装置及び記録媒体
JPH03201133A (ja) 情報処理装置
JPS6339037A (ja) プログラム呼出し処理方式
JPH0259829A (ja) マイクロコンピュータ
JPS58213282A (ja) 電子時計用lsi
JPH01236327A (ja) 割込みマスク制御方法
Thomas Mite: a fast and flexible virtual machine
JPH0293935A (ja) アドレス空間の動的変換方式
JPH01263750A (ja) シングルチップマイクロコンピュータ