JPH0546382A - データ長選択方法 - Google Patents

データ長選択方法

Info

Publication number
JPH0546382A
JPH0546382A JP3232300A JP23230091A JPH0546382A JP H0546382 A JPH0546382 A JP H0546382A JP 3232300 A JP3232300 A JP 3232300A JP 23230091 A JP23230091 A JP 23230091A JP H0546382 A JPH0546382 A JP H0546382A
Authority
JP
Japan
Prior art keywords
data
data length
instruction
program
length
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
JP3232300A
Other languages
English (en)
Inventor
Toshihiro Abe
俊広 阿部
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3232300A priority Critical patent/JPH0546382A/ja
Publication of JPH0546382A publication Critical patent/JPH0546382A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 マイクロコンピュータのプログラム上でデー
タ長の選択方法をより簡素化し、しかもプログラムの大
きさを小さくしてROMの記憶効率の向上を図る。 【構成】 命令が処理するデータのデータ長が複数個存
在する場合、複数個のデータ長のうちの1つをデフォル
ト値として予め設定しておき、プログラム6の進行上
で、デフォルト値と処理するデータのデータ長とが、同
じ場合は8ビットのデータ長を選択し(ステップS1,
S2)、異なる場合は命令(69)の直前にデータ長変
更命令(42)を加え、それらの両命令により得られる
16ビットのデータ長を選択する(ステップS3)。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はマイクロコンピュータ
のプログラムにおけるデータ長の選択方法に関するもの
である。
【0002】
【従来の技術】マイクロコンピュータを含むデータ処理
装置においては、プログラムの実行によって処理される
データが複数のデータ長を持つ場合、データ処理を行う
各命令を実行する際に処理されるデータのデータ長を選
択しなければならない。図2はマイクロコンピュータの
要部構成を示すブロック図で、図中、2は演算,制御を
行うCPU、3はデータ処理に必要なデータを一時的に
格納するRAM、4は命令やプログラムが格納されたR
OM、5は外部との入出力を行うI/Oポートである。
ここでは例として16ビットマイクロコンピュータにつ
いて説明する。
【0003】従来の16ビットマイクロコンピュータに
おいては、データを16ビット長で処理する場合と、8
ビット長で処理する場合とがあり、命令を実行する際に
該命令の処理するデータ長が16ビット長であるか8ビ
ット長であるかを指示する必要がある。上記データ長の
選択を実現する第1の方法は、8ビット長を処理する命
令と16ビット長を処理する命令とを全く別命令として
扱い、それぞれ異なるマシンコードを割り当てる方法で
ある。ただし、この場合1つの命令に対し各2つのマシ
ンコードを割り当てるために見かけの命令数が多くなる
ため、命令語の語長は16ビット長となる。
【0004】この第1の方法によるプログラム例をニー
モニックにおけるADC(Add wthCarry)命令をイミデ
ィエイトアドレシングモードで実行する場合について、
図3に示す。上記ADC命令はマイクロコンピュータ1
のCPU2内の図示しない1つのレジスタであるアキュ
ムレータの内容を、プログラム上、ADC命令の命令コ
ードに続いて記述される数値データと、さらに同じくマ
イクロコンピュータ1のCPU2内の1つのレジスタに
格納されている1つのビットであるキャリーフラグの内
容とを加算し、その結果を上記アキュムレータに格納す
る命令である。図3に示す例において、ADC命令にお
ける8ビット長の数値データを処理する場合は「69,
01」、16ビット長の数値データを処理する場合には
「69,02」というマシンコードが割り当てられてお
り、各命令語の後に加算される数値データ「96」及び
「0096」が記述される。すなわち、この例では8ビ
ット長のデータの加算命令を2つ、16ビット長のデー
タの加算命令を1つ実行する際のプログラムの大きさは
10バイトになることがわかる。
【0005】データ長の選択を実現する第2の方法は、
各命令に対して1つのマシンコードを割り当て、その処
理するデータのデータ長を選択するためのデータ長選択
フラグmを設け、その内容により16ビット長で処理す
るのか8ビット長で処理するのかを選択する方法であ
る。すなわち、このフラグmの内容が「0」のとき16
ビット長、「1」のとき8ビット長になる。ここで、デ
ータ長選択フラグmを「1」(データ長8ビット)で1
6ビットデータを処理したり、データ長選択フラグmを
「0」(データ長16ビット)で8ビットデータを処理
することは暴走の原因になるため、プログラム作成にお
いては、このフラグmの状態に注意しなければならな
い。
【0006】図4は第2の方法によるプログラム例を示
す。ニーモニックにおけるSEM(Set M flag)命令は
データ長選択フラグmの内容を「1」にすることによっ
て処理するデータのデータ長を8ビット長に設定する。
また、ニーモニックにおけるCLM(Clear M flag)命
令はデータ長選択フラグmの内容を「0」にすることに
よって処理するデータのデータ長を16ビット長に設定
する。このプログラムでは、まずSEM命令で処理する
データのデータ長を8ビット長に設定し、ADC命令で
8ビット長のデータを処理する(プログラムの1〜3行
目)。この第2の方法では各命令に対して1つのマシン
コードを割り当てればよいので、命令の語長は8ビット
長となる(ADCの場合「69」)。次にCLM命令で
処理するデータのデータ長を16ビット長に設定し直し
て、ADC命令で16ビット長のデータの処理を行う
(プログラムの4行目と5行目)。図4は図3と同様の
ことを行ったプログラムであるが、この方法でデータ長
を選択すると、図3で10バイトであったプログラムが
図4では9バイトの大きさになる。
【0007】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータのプログラムでは、以上のようにデータ長の選択
に様々な方法が使われているが、それぞれ以下のような
問題点がある。第1の方法によると、各命令に対し8ビ
ット長のデータを処理す場合と16ビット長を処理する
場合に対して別々のマシンコードを割り当てるために命
令長が2バイトになり、プログラムが大きくなってしま
う。第2の方法では、データ長の選択にデータ長選択フ
ラグmを用いることにより、各命令に対して1つのマシ
ンコードを割り当てればよく、命令長が1バイトにな
り、同じデータ長の命令を繰り返して使う場合はデータ
長選択フラグmの設定を変えなくてもよいため、第1の
方法に比べてプログラムの大きさを小さくすることがで
きる。しかし、データ長の選択のためにデータ長選択フ
ラグmを用いる場合、プログラムを作成する際に常にデ
ータ長選択フラグmの内容を考えておかなければならな
いという問題点がある。
【0008】この発明は上記の問題点を解決するために
なされたもので、プログラム上でデータ長を選択する方
法を簡単にするとともに、プログラムの大きさを小さく
してROMの記憶効率を向上させることができるデータ
長選択方法を提供することを目的とする。
【0009】
【課題を解決するための手段】この発明に係るデータ長
選択方法は、命令が処理するデータのデータ長が複数個
存在する場合、複数個のデータ長のうちの1つをプログ
ラムが自動的に割り当てるデフォルト値として予め設定
しておき、プログラム6の進行上でデフォルト値と処理
するデータのデータ長とが、同じ場合は当該データ長
(8ビットのデータ長)を選択し(ステップS1,S
2)、異なる場合は命令(69)の直前にデータ長変更
命令(42)を加え、それらの両命令により得られるデ
ータ長を選択する(ステップS3)ものである。
【0010】
【作用】例えば、プログラム6の進行上で、データ長の
デフォルト値と処理するデータのデータ長が、同じ場合
は1バイトの命令(69)で処理が行われ(ステップS
1,S2)、異なる場合は命令(69)の直前に付加さ
れた1バイトのデータ長変更命令(42)を加えた合計
2バイト長の命令で処理が行われる。
【0011】
【実施例】図1はこの発明の一実施例のデータ長選択方
法を用いて作成したプログラムで、従来例(図3及び図
4)と同様の処理を行うようにしてある。まず、データ
長のデフォルト値を8ビット長に設定しておく。プログ
ラム6の進行上、使用するデータが8ビット長でこのデ
フォルト値を一致する場合(図1の1行目及び2行目)
は、1バイト長の命令でデータを処理する(ステップS
1,S2)。そして、処理に使用するデータが16ビッ
ト長でデフォルト値と異なる場合(図1の3行目)は命
令(マシンコード69)の直前に「42」という1バイ
ト長のデータ長変更命令を加え、合計2バイト長の命令
でデータを処理する(ステップS3)。この方法でプロ
グラム6を作成すると、図2及び図3に示したように従
来の16ビットマイクロコンピュータのプログラム上で
10バイトあるいは9バイトの大きさになっていたもの
が8バイトの大きさで構成できる。
【0012】そして、考えられるように、プログラムが
大きくなり、8ビット長のデータと16ビット長のデー
タとを共に処理する回数が増えれば増えるほど、従来の
16ビットマイクロコンピュータのプログラムの大きさ
と、この発明を用いたプログラムの大きさとの差は大き
くなる。また、従来の第2の方法のように、プログラム
を作成する際に常にデータ長選択フラグmの内容を考え
ておく必要もなく、処理するデータのデータ長がデフォ
ルト値と異なる場合のみ、命令の直前にデータ長変更命
令を加えるだけでよいため、プログラムの作成が容易に
なる。
【0013】なお、図1の場合はデータ長選択の際のデ
フォルト値として、8ビット長を指定したが、このデフ
ォルト値は8ビット長と16ビット長のどちらでもよ
い。プログラムを短くするという点では、より多くの処
理を行うデータ長をデフォルト値として指定するのが好
ましい。また、上記実施例では16ビットマイクロコン
ピュータにおける8ビット長と16ビット長の2つのデ
ータ長の選択方法を示したが、32ビットマイクロコン
ピュータのように処理するデータ長が3つある場合(8
ビット長,16ビット長,32ビット長)や、さらに4
つ以上ある場合においても、複数のデータ長のうちの一
つをデフォルト値として設定し、上記の方法でデータ長
を選択すれば、16ビットマイクロコンピュータで示し
たのと同様にプログラムの大きさを小さくすることがで
きる。
【0014】
【発明の効果】以上のように本発明によれば、複数個の
データ長のうちの1つをデフォルト値として予め設定し
ておき、プログラムの進行上でデフォルト値と処理する
データのデータ長とが、同じ場合は当該データ長を選択
し、異なる場合は命令の直前にデータ長変更命令を加
え、そられの両命令により得られるデータ長を選択する
ようにしたので、プログラム上でデータ長を選択する方
法が簡単になってプログラムの作成が容易になり、しか
もデータ長の選択を多く必要とするプログラムの大きさ
をより小さくすることができ、ROMの記憶効率が向上
するという効果が得られる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るデータ長選択方法を
用いて作成したプログラムを示す図である。
【図2】マイクロコンピュータの要部構成を示すブロッ
ク図である。
【図3】従来の16ビットマイクロコンピュータのプロ
グラムにおけるデータ長選択を実現するための第1の方
法を用いて作成したプログラムを示す図である。
【図4】従来の16ビットマイクロコンピュータのプロ
グラムにおけるデータ長選択を実現するための第2の方
法を用いて作成したプログラムを示す図である。
【符号の説明】
1 マイクロコンピュータ 4 ROM(記憶手段) 6 プログラム
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成4年6月17日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】この第1の方法によるプログラム例をニー
モニックにおけるADC(Add withCarry)命令をイミ
ディエイトアドレシングモードで実行する場合につい
て、図3に示す。上記ADC命令はマイクロコンピュー
タ1のCPU2内の図示しない1つのレジスタであるア
キュムレータの内容を、プログラム上、ADC命令の命
令コードに続いて記述される数値データと、さらに同じ
くマイクロコンピュータ1のCPU2内の1つのレジス
タに格納されている1つのビットであるキャリーフラグ
の内容とを加算し、その結果を上記アキュムレータに格
納する命令である。図3に示す例において、ADC命令
における8ビット長の数値データを処理する場合は「6
9,01」、16ビット長の数値データを処理する場合
には「69,02」というマシンコードが割り当てられ
ており、各命令語の後に加算される数値データ「96」
及び「0096」が記述される。すなわち、この例では
8ビット長のデータの加算命令を2つ、16ビット長の
データの加算命令を1つ実行する際のプログラムの大き
さは10バイトになることがわかる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正内容】
【0007】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータのプログラムでは、以上のようにデータ長の選択
に様々な方法が使われているが、それぞれ以下のような
問題点がある。第1の方法によると、各命令に対し8ビ
ット長のデータを処理す場合と16ビット長のデータ
処理する場合に対して別々のマシンコードを割り当てる
ために命令長が2バイトになり、プログラムが大きくな
ってしまう。第2の方法では、データ長の選択にデータ
長選択フラグmを用いることにより、各命令に対して1
つのマシンコードを割り当てればよく、命令長が1バイ
トになり、同じデータ長の命令を繰り返して使う場合は
データ長選択フラグmの設定を変えなくてもよいため、
第1の方法に比べてプログラムの大きさを小さくするこ
とができる。しかし、データ長の選択のためにデータ長
選択フラグmを用いる場合、プログラムを作成する際に
常にデータ長選択フラグmの内容を考えておかなければ
ならないという問題点がある。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正内容】
【0011】
【実施例】図1はこの発明の一実施例のデータ長選択方
法を用いて作成したプログラムで、従来例(図3及び図
4)と同様の処理を行うようにしてある。まず、データ
長のデフォルト値を8ビット長に設定しておく。プログ
ラム6の進行上、使用するデータが8ビット長でこのデ
フォルト値一致する場合(図1の1行目及び2行目)
は、1バイト長の命令でデータを処理する(ステップS
1,S2)。そして、処理に使用するデータが16ビッ
ト長でデフォルト値と異なる場合(図1の3行目)は命
令(マシンコード69)の直前に「42」という1バイ
ト長のデータ長変更命令を加え、合計2バイト長の命令
でデータを処理する(ステップS3)。この方法でプロ
グラム6を作成すると、図2及び図3に示したように従
来の16ビットマイクロコンピュータのプログラム上で
10バイトあるいは9バイトの大きさになっていたもの
が8バイトの大きさで構成できる。
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 記憶手段に格納された複数の命令を逐次
    実行するマイクロコンピュータのプログラムにおいて、
    上記命令が処理するデータのデータ長が複数個存在する
    場合、上記複数個のデータ長のうちの1つをプログラム
    が自動的に割り当てるデフォルト値として予め設定して
    おき、プログラムの進行上で、上記デフォルト値と処理
    するデータのデータ長とが、同じ場合は当該データ長を
    選択し、異なる場合は命令の直前にデータ長変更命令を
    加え、それらの両命令により得られるデータ長を選択す
    ることを特徴とするデータ長選択方法。
JP3232300A 1991-08-20 1991-08-20 データ長選択方法 Pending JPH0546382A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3232300A JPH0546382A (ja) 1991-08-20 1991-08-20 データ長選択方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3232300A JPH0546382A (ja) 1991-08-20 1991-08-20 データ長選択方法

Publications (1)

Publication Number Publication Date
JPH0546382A true JPH0546382A (ja) 1993-02-26

Family

ID=16937055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3232300A Pending JPH0546382A (ja) 1991-08-20 1991-08-20 データ長選択方法

Country Status (1)

Country Link
JP (1) JPH0546382A (ja)

Similar Documents

Publication Publication Date Title
US6098087A (en) Method and apparatus for performing shift operations on packed data
US5032983A (en) Entry point mapping and skipping method and apparatus
JPS58189739A (ja) デ−タ処理システム
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
JPH07281890A (ja) 命令セット及びそのマイクロコンピュータによる実行方法
JPH0546382A (ja) データ長選択方法
US5479620A (en) Control unit modifying micro instructions for one cycle execution
JPH01269131A (ja) 命令先行制御方式
JPH06337792A (ja) プログラム変換装置およびプロセッサ
JPH07101385B2 (ja) 情報処理装置
US6430681B1 (en) Digital signal processor
JPS62145326A (ja) マイクロプログラム制御回路
GB1593136A (en) Data processing
JPS6226485B2 (ja)
JPH07146792A (ja) データ処理装置
JP3036900B2 (ja) アセンブラ処理装置
JPS63178330A (ja) 演算フラグ制御装置
JP2845694B2 (ja) データ処理装置
JPH08179815A (ja) プログラマブルコントローラ
JP3533078B2 (ja) シーケンス制御方法及び制御装置
JPS6319041A (ja) 割込み方式
JPS63298633A (ja) パイプライン処理装置における命令フェッチ制御方式
JPS6398037A (ja) デ−タ処理装置
JPS5878203A (ja) プログラマブル・コントロ−ラ
JPH03164849A (ja) マイクロプロセッサおよびマイクロプロセッサシステム