数据寻址——堆栈寻址
文章目录堆栈寻址完成一次加法的过程堆栈寻址堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP)。如下图所示:完成一次加法的过程记栈顶单元为Msp(Msp) → ACC(SP)+1 → SP...
·
堆栈寻址
堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。
堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP)。
如下图所示:
采用堆栈寻址完成一次加法的过程
记栈顶单元为Msp,
POP ACC (Msp) → ACC
(SP)+1 → SP
POP X (Msp) → X
(SP)+1 → SP
ADD Y (ACC)+(X) → Y
PUSH Y (SP)-1 → SP (Y) → Msp

两种堆栈方式
栈顶在小地址方向(例如上面例子)
出栈: (Msp) → ACC
(SP)+1 → SP
入栈: (SP)-1 → SP
(Y) → Msp
栈顶在大地址方向
出栈: (Msp) → ACC
(SP)-1 → SP
入栈: (SP)+1 → SP
(Y) → Msp
分类
硬堆栈
用特定的寄存器来存储数据,在其中进行入栈,出栈操作

但是这样成本会很高
软堆栈
在主存中找一段地址来存储数据,在其中进行入栈,出栈操作
另外
堆栈还可用于函数调用时保存当前函数的相关信息
小结

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)