跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

(CPU) 如何设定堆栈指针指向RAM的最后地址?

最新更新:09/29/2006

Question:

(CPU) 如何设定堆栈指针指向RAM的最后地址?

Answer:

在38000/740系列中,可作为堆栈使用的区域分配到地址 0040h~01FFh内的RAM。即使RAM在地址0200h之后分配,也不能作为堆栈使用。地址 0040h~00FFh为零页,地址 0100h ~01FFh为一页,请选择零页或一页堆栈,不可跨越使用两个页,通过CPU模式寄存器中的堆栈页选择位确定该页。堆栈指针的内容决定堆栈地址的低8位。

以下使用内部RAM容量为512字节分配到地址0040h~023Fh作为示例。堆栈指针不能指定为地址023Fh(RAM的最后一个地址)。设定堆栈指针到可作为堆栈(地址 01FFh)的区域的最后一个地址。
堆栈指针设定举例如下:子程序调用、指令中断或执行接收使用堆栈前设定堆栈,建议在程序初始化程序中设定堆栈指针。

SEB 2,$3B ;使用CPU模式寄存器的堆栈页选择位指定第一页
LDX #$FF
TXS ;将堆栈指针设定到地址01FFh。 *使用堆栈的指令有: PHA, PHP, PLA, PLP, MUL, DIV, JSR, RTS, RTI 和 BRK

Suitable Products
3803H
3803L
3823
3850A
3858
38D2
38D5
7544
7545
7546
7547
7548
7549