JPH0527975A - マイクロコンピユータ - Google Patents
マイクロコンピユータInfo
- Publication number
- JPH0527975A JPH0527975A JP3207631A JP20763191A JPH0527975A JP H0527975 A JPH0527975 A JP H0527975A JP 3207631 A JP3207631 A JP 3207631A JP 20763191 A JP20763191 A JP 20763191A JP H0527975 A JPH0527975 A JP H0527975A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- stack area
- data
- pointer
- stack pointer
- 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
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 スタックにおけるサブルーチン等の変数の受
け渡しを容易にする。 【構成】 ハードウェア上のデータを格納するスタック
領域での場所を示すスタックポインタSP1と、ソフト
ウェア上で使用するデータを格納するスタック領域での
場所を示すスタックポインタSP2の2つの分離したス
タックポインタを持つ。 【効果】 Cコンパイラを使用しての関数呼出し時の、
変数の受け渡し部分のコンパイラ結果におけるオブジェ
クトコードが小さくなる。また、サブルーチンの構造
化,モジュール化が進む。
け渡しを容易にする。 【構成】 ハードウェア上のデータを格納するスタック
領域での場所を示すスタックポインタSP1と、ソフト
ウェア上で使用するデータを格納するスタック領域での
場所を示すスタックポインタSP2の2つの分離したス
タックポインタを持つ。 【効果】 Cコンパイラを使用しての関数呼出し時の、
変数の受け渡し部分のコンパイラ結果におけるオブジェ
クトコードが小さくなる。また、サブルーチンの構造
化,モジュール化が進む。
Description
【0001】
【産業上の利用分野】この発明は、マイクロコンピュー
タに関し、特に、スタック操作におけるサブルーチン等
の変数の受け渡しを容易にするマイクロコンピュータに
関するものである。
タに関し、特に、スタック操作におけるサブルーチン等
の変数の受け渡しを容易にするマイクロコンピュータに
関するものである。
【0002】
【従来の技術】従来のマイクロコンピュータでスタック
操作をする場合は、図2で示すような方法で行ってい
た。図2において、1〜3はスタック操作命令のステッ
プ、7はスタック領域、SP3はスタック領域内のデー
タ格納場所を示すスタックポインタであり、1〜3の命
令のステップを実行した場合のデータ及びスタックポイ
ンタの変化を示している
操作をする場合は、図2で示すような方法で行ってい
た。図2において、1〜3はスタック操作命令のステッ
プ、7はスタック領域、SP3はスタック領域内のデー
タ格納場所を示すスタックポインタであり、1〜3の命
令のステップを実行した場合のデータ及びスタックポイ
ンタの変化を示している
【0003】動作について説明すると、まず、第1ステ
ップのPUSH αを実行すると、スタック領域7に変
数の“α”が待避され、スタックポインタSP3が“0
000”から“0001”に変化する。次に、第2ステ
ップのPUSH βが実行されると、スタック領域7に
変数“β”が待避され、変数“α”の上に積まれる。そ
して、スタックポインタSP3は“0002”を示す。
次に、第3ステップの命令JSR SUBが実行されサ
ブルーチン(SUB)が呼出されると、サブルーチンの
戻り先番地のデータが変数“β”の上にさらに積まれ
て、スタックポインタSP3は最終的に“0003”を
示す。
ップのPUSH αを実行すると、スタック領域7に変
数の“α”が待避され、スタックポインタSP3が“0
000”から“0001”に変化する。次に、第2ステ
ップのPUSH βが実行されると、スタック領域7に
変数“β”が待避され、変数“α”の上に積まれる。そ
して、スタックポインタSP3は“0002”を示す。
次に、第3ステップの命令JSR SUBが実行されサ
ブルーチン(SUB)が呼出されると、サブルーチンの
戻り先番地のデータが変数“β”の上にさらに積まれ
て、スタックポインタSP3は最終的に“0003”を
示す。
【0004】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータでは、スタックポインタの示すスタック領域にデ
ータが積まれていくので、呼出されたサブルーチン内で
変数α,βの値を使用すようとすると、現在のスタック
ポインタから、変数α,βのデータが格納されている番
地を計算によって求めなければならないという問題点が
っあた。このため、変数の受け渡しが容易ではなく、ま
たCコンバイラを使用しての、関数呼出し部分のコンパ
イラ結果のオブジェクトコードが大きくなる問題点もあ
った。
ュータでは、スタックポインタの示すスタック領域にデ
ータが積まれていくので、呼出されたサブルーチン内で
変数α,βの値を使用すようとすると、現在のスタック
ポインタから、変数α,βのデータが格納されている番
地を計算によって求めなければならないという問題点が
っあた。このため、変数の受け渡しが容易ではなく、ま
たCコンバイラを使用しての、関数呼出し部分のコンパ
イラ結果のオブジェクトコードが大きくなる問題点もあ
った。
【0005】この発明は上記のような問題点を解消する
ためになされたもので、スタックによるサブルーチンへ
の変数の受け渡しが容易にでき、また、Cコンパイラを
使用しての関数呼出し部分のコンパイラ結果でのオブジ
ェクトコードが大きくならないマイクロコンピュータを
提供することにある。
ためになされたもので、スタックによるサブルーチンへ
の変数の受け渡しが容易にでき、また、Cコンパイラを
使用しての関数呼出し部分のコンパイラ結果でのオブジ
ェクトコードが大きくならないマイクロコンピュータを
提供することにある。
【0006】
【課題を解決するための手段】この発明に係るマイクロ
コンピュータではメモリ上のスタック領域を第1のスタ
ック領域5と第2のスタック領域4とに分け、上記第1
のスタック領域におけるサブルーチンの戻り先等のハー
ドウェア上で使用されるデータが格納されている場所を
示す第1のスタックポインタSP1と、第2のスタック
領域における引き数等のソフトウェア上で使用されるデ
ータが格納されている場所を示す第2のスタックポイン
タSP2とを有する。
コンピュータではメモリ上のスタック領域を第1のスタ
ック領域5と第2のスタック領域4とに分け、上記第1
のスタック領域におけるサブルーチンの戻り先等のハー
ドウェア上で使用されるデータが格納されている場所を
示す第1のスタックポインタSP1と、第2のスタック
領域における引き数等のソフトウェア上で使用されるデ
ータが格納されている場所を示す第2のスタックポイン
タSP2とを有する。
【0007】
【作用】この発明に係るマイクロコンピュータでは、メ
モリ上のスタック領域を2つの領域に分け、サブルーチ
ンの戻り先や割込みの戻り先等のハードウェアで使用す
るデータを、上記第1のスタックポインタの示す上記第
1のメモリ領域の場所に格納し、引き数等のソフトウェ
ア上で使用するデータを上記第2のスタックポインタの
示す上記第2のメモリ領域の場所に格納する。このよう
に、格納するデータの機能によって、そのデータの格納
する場所を分けた。
モリ上のスタック領域を2つの領域に分け、サブルーチ
ンの戻り先や割込みの戻り先等のハードウェアで使用す
るデータを、上記第1のスタックポインタの示す上記第
1のメモリ領域の場所に格納し、引き数等のソフトウェ
ア上で使用するデータを上記第2のスタックポインタの
示す上記第2のメモリ領域の場所に格納する。このよう
に、格納するデータの機能によって、そのデータの格納
する場所を分けた。
【0008】
【実施例】以下、この発明の実施例を図について説明す
る。図1はこの発明の一実施例におけるスタック領域及
びスタックポインタを示す図である。図1において、1
〜3は命令のステップ、4は第1のスタック領域として
のスタック領域、5は第2のスタック領域としてのスタ
ック領域、SP2は第2のスタックポインタとしてのス
タックポインタ、SP1は第1のスタックポインタとし
てのスタックポインタてあり、命令によるスタック領域
のデータの変化及びスタックポインタの変化を示してい
る。
る。図1はこの発明の一実施例におけるスタック領域及
びスタックポインタを示す図である。図1において、1
〜3は命令のステップ、4は第1のスタック領域として
のスタック領域、5は第2のスタック領域としてのスタ
ック領域、SP2は第2のスタックポインタとしてのス
タックポインタ、SP1は第1のスタックポインタとし
てのスタックポインタてあり、命令によるスタック領域
のデータの変化及びスタックポインタの変化を示してい
る。
【0009】メモリ上のスタック領域は二つのスタック
領域に分かれており、第1のスタック領域のスタック領
域5は、サブルーチンの戻り先(サブルーチンの戻り番
地),割込み先の戻り先(割込み先の番地)等のハード
ウェアで使用するデータをスタックポインタSP1の示
す場所に格納するスタックである。また、第2のスタッ
ク領域のスタック領域4は、引き数のソフトウェア上で
使用されるデータをスタックポインタSP2の示す場所
に格納するスタックである。
領域に分かれており、第1のスタック領域のスタック領
域5は、サブルーチンの戻り先(サブルーチンの戻り番
地),割込み先の戻り先(割込み先の番地)等のハード
ウェアで使用するデータをスタックポインタSP1の示
す場所に格納するスタックである。また、第2のスタッ
ク領域のスタック領域4は、引き数のソフトウェア上で
使用されるデータをスタックポインタSP2の示す場所
に格納するスタックである。
【0010】次に、図1を参照して、この実施例の動作
について説明する。命令が実行されない状態では、スタ
ック領域4のスタックポインタSP2は“0100”を
示している。第1のステップであるPUSH αの命令
が実行されると、スタックポインタSP2は“010
1”を示し、データ“α”がスタック領域4に待避され
る。次に、第2のステップであるPUSH βの命令が
実行されると、スタックポインタSP2は“0102”
を示し、データ“β”がスタック領域4に待避され、デ
ータ“α”の上に積まれる。
について説明する。命令が実行されない状態では、スタ
ック領域4のスタックポインタSP2は“0100”を
示している。第1のステップであるPUSH αの命令
が実行されると、スタックポインタSP2は“010
1”を示し、データ“α”がスタック領域4に待避され
る。次に、第2のステップであるPUSH βの命令が
実行されると、スタックポインタSP2は“0102”
を示し、データ“β”がスタック領域4に待避され、デ
ータ“α”の上に積まれる。
【0011】次に、第3のステップであるJSR SU
Bが命令が実行されると、この命令はサブルーチン(S
UB)を呼出す命令なので、別に設けられたスタック領
域5のスタックポインタSP1“0000”の示す場所
にサブルーチンの戻り先番地のデータを積み、スタック
ポインタSP1を“0001”とする。このように、ハ
ードウェア上のデータとソフトウェア上のデータを操作
する命令が交互に続く場合でも、スタックを機能別に分
けているため、変数の受け渡しがスムースになる。
Bが命令が実行されると、この命令はサブルーチン(S
UB)を呼出す命令なので、別に設けられたスタック領
域5のスタックポインタSP1“0000”の示す場所
にサブルーチンの戻り先番地のデータを積み、スタック
ポインタSP1を“0001”とする。このように、ハ
ードウェア上のデータとソフトウェア上のデータを操作
する命令が交互に続く場合でも、スタックを機能別に分
けているため、変数の受け渡しがスムースになる。
【0012】なお、この実施例では、スタックを2つに
分けた例について説明したが、機能別に分けるスタック
の数及びスタックポインタの数は2つに限らず、さらに
増やすことも可能である。
分けた例について説明したが、機能別に分けるスタック
の数及びスタックポインタの数は2つに限らず、さらに
増やすことも可能である。
【0013】
【発明の効果】以上のように、この発明によれば、メモ
リ上の第1のスタック領域のデータ格納場所を示す第1
のマイクロポインタと、メモリ上の第2のスタック領域
のデータ格納場所を示す第2のマイクロポインタとを有
するため、変数の受け渡しが容易にできるようになるた
め、サブルーチンの構造化,モジュール化が進み、ま
た、Cコンパイラを使用しての関数呼出し部分のコンパ
イラ結果におけるオブジェクトコードが、従来に比べ小
さくなる効果がある。
リ上の第1のスタック領域のデータ格納場所を示す第1
のマイクロポインタと、メモリ上の第2のスタック領域
のデータ格納場所を示す第2のマイクロポインタとを有
するため、変数の受け渡しが容易にできるようになるた
め、サブルーチンの構造化,モジュール化が進み、ま
た、Cコンパイラを使用しての関数呼出し部分のコンパ
イラ結果におけるオブジェクトコードが、従来に比べ小
さくなる効果がある。
【図1】この発明の一実施例におけるスタック領域及び
スタックポインタを示す図である。
スタックポインタを示す図である。
【図2】従来の技術の一例におけるスタック領域及びス
タックポインタを示す図である。
タックポインタを示す図である。
4,5 スタック領域 SP1,SP2 スタックポインタ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成4年6月4日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータでは、スタックポインタの示すスタック領域にデ
ータが積まれていくので、呼出されたサブルーチン内で
変数α,βの値を使用しようとすると、現在のスタック
ポインタから、変数α,βのデータが格納されている番
地を計算によって求めなければならないという問題点が
っあた。このため、変数の受け渡しが容易ではなく、ま
たCコンバイラを使用しての、関数呼出し部分のコンパ
イラ結果のオブジェクトコードが大きくなる問題点もあ
った。
ュータでは、スタックポインタの示すスタック領域にデ
ータが積まれていくので、呼出されたサブルーチン内で
変数α,βの値を使用しようとすると、現在のスタック
ポインタから、変数α,βのデータが格納されている番
地を計算によって求めなければならないという問題点が
っあた。このため、変数の受け渡しが容易ではなく、ま
たCコンバイラを使用しての、関数呼出し部分のコンパ
イラ結果のオブジェクトコードが大きくなる問題点もあ
った。
Claims (1)
- 【特許請求の範囲】 【請求項1】 メモリ上のスタック領域を第1のスタッ
ク領域と第2のスタック領域とに分け、第1のスタック
領域におけるサブルーチンの戻り先等のハードウェア上
で使用されるデータが格納されている場所を示す第1の
スタックポインタと、第2のスタック領域における引き
数等のソフトウェア上で使用されるデータが格納されて
いる場所を示す第2のスタックポインタとを有すること
を特徴とするマイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3207631A JPH0527975A (ja) | 1991-07-24 | 1991-07-24 | マイクロコンピユータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3207631A JPH0527975A (ja) | 1991-07-24 | 1991-07-24 | マイクロコンピユータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0527975A true JPH0527975A (ja) | 1993-02-05 |
Family
ID=16542996
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3207631A Pending JPH0527975A (ja) | 1991-07-24 | 1991-07-24 | マイクロコンピユータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0527975A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5511993A (en) * | 1993-08-25 | 1996-04-30 | Yazaki Corporation | Connector shield wire connection structure |
| US6568967B2 (en) | 2000-07-06 | 2003-05-27 | Yazaki Corporation | Protective cover |
| US7787479B2 (en) * | 2005-04-28 | 2010-08-31 | Fujitsu Ten Limited | Gateway apparatus and routing method |
-
1991
- 1991-07-24 JP JP3207631A patent/JPH0527975A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5511993A (en) * | 1993-08-25 | 1996-04-30 | Yazaki Corporation | Connector shield wire connection structure |
| US6568967B2 (en) | 2000-07-06 | 2003-05-27 | Yazaki Corporation | Protective cover |
| US7787479B2 (en) * | 2005-04-28 | 2010-08-31 | Fujitsu Ten Limited | Gateway apparatus and routing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0487082B1 (en) | Nesting management mechanism for use in loop control system | |
| EP0538817B1 (en) | High-speed processor capable of handling multiple interrupts | |
| EP0087978B1 (en) | Information processing unit | |
| JP2883784B2 (ja) | マイクロコンピュータ | |
| US5261101A (en) | Method for calling and returning from subroutine that is invoked by either a near call or a far call | |
| US6138210A (en) | Multi-stack memory architecture | |
| US4942524A (en) | Software trap system which saves previous content of software trap handling pointer in a stack upon execution of a trap | |
| JPH0527975A (ja) | マイクロコンピユータ | |
| US6058457A (en) | Method for storing method frames in multiple stacks | |
| EP0240108A2 (en) | A data processing system | |
| US6067602A (en) | Multi-stack-caching memory architecture | |
| EP0417916B1 (en) | Procedure state descriptor system for digital data processors | |
| US6092152A (en) | Method for stack-caching method frames | |
| US5765148A (en) | Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program | |
| JP3539984B2 (ja) | プロセッサ | |
| JPS62151940A (ja) | レジスタ退避/復帰方式 | |
| JPH07129399A (ja) | 命令属性レジスターを使用して多機能命令を実行する マイクロコンピュータ | |
| JP2500804B2 (ja) | 計算機 | |
| JPH0324695B2 (ja) | ||
| JPS61216035A (ja) | アドレス・スタツクのオ−バ−フロ−処理方法 | |
| JPH05274144A (ja) | 情報処理装置 | |
| JPS58197548A (ja) | スタツク制御方式 | |
| JPH03163630A (ja) | プロセッサのスタック制御方法 | |
| JPS61100836A (ja) | 移動命令論理比較命令処理方式 | |
| JPH083792B2 (ja) | 関数呼び出し処理方法 |