[H8-ML(1076)] Re: ".DATA" について
From: Junsuke Kunugiza <jk@xxxxxxx>
Date: 2001年04月09日(月)17時58分51秒
こんにちは、くぬぎざです。

On Mon, 9 Apr 2001 17:14:47 +0900
"Kohya Gotoh" <hoshikage@xxxxxxxxx> wrote:

> 	.SECTION RESET0,DATA,LOCATE=H'000000
> 	.DATA.L	INIT		;リセットベクトル

この部分はベクタテーブルと言い、リセットや割り込みとった
例外が発生したときに実行されるべきアドレスだけを列挙した
ものです。何らかの例外が発生すると、CPU は例外の要因に
対応したベクタアドレス(たとえばリセットなら 0 番地)を
参照して、そこに書かれているアドレスが示す番地から再び
命令の実行をはじめます。

つまり、これ自体は命令ではなくデータとしてのアドレスに
過ぎないので、.DATA.L INIT になるわけです。"INIT" は、
アセンブルの際にそのラベルのアドレス (ここでは H'000100) に
変換されますから、CPU がリセットを食らったときには、
H'000100 にある命令から実行される、ということになります。

> なんか、"BSR INIT"の方が正解じゃないかなあって思うんですが
> どのように動作するんでしょうか?

簡単に言えば、BSR は CPU が自主的にやっているわけです。
詳しくは、ハードウェアマニュアルの「例外処理」を。


椚座 淳介 (Junsuke Kunugiza)

スレッド概略
[1075(R)](起点)
 └[表示中]
   └[1078(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]