Renesas Synergy™

FAQ 104738 : 【CPU】 RAMの最終アドレスにスタックポインタを設定するには、どうすればよいか。[2006/09/26]

38000/740シリーズがスタックとして使用できる領域は0040h~01FFh番地の内のRAMが配置されている領域です。0200h番地以降にRAMが配置されていても、スタックとして使用できません。
0040h~01FFh番地の内、0040h~00FFh番地は0ページ、0100h~01FFh番地は1ページにあります。スタック用には、どちらかのページを選択してください。ページをまたがった使用はできません。このページは、CPUモードレジスタのスタックページ選択ビットで選択します。下位8ビットのアドレスは、スタックポインタで指定します。

内蔵RAM容量は512バイトで、0040h~023Fh番地に割り当てられているマイコンを例として説明します。RAMの最終アドレスの023Fh番地にはスタックポインタを設定できません。スタックとして使用できる領域の最終アドレス(01FFh番地)に、スタックポインタを設定してください。
スタックポインタの設定例を下記に示します。
スタックポインタは、サブルーチンコールや割り込みの受け付け、スタックを使用する命令の実行までに設定してください。プログラムの初期設定ルーチンでの設定を推奨します。

SEB 2,$3B ; CPUモードレジスタのスタックページ選択ビットで1ページを指定
LDX #$FF  
TXS ; スタック01FFh番地に設定
   
*スタックを使用する命令:PHA、PHP、PLA、PLP、MUL、DIV、JSR、 RTS、RTI、BRK命令

(#101899)

適用製品

3803H
3803L
3823
3850A
3858
38D2
38D5
7544
7545
7546
7547
7548
7549
他にご質問がございましたら、リクエストを送信してください