理论教育 堆栈寻址方式详解

堆栈寻址方式详解

时间:2023-06-15 理论教育 版权反馈
【摘要】:堆栈寻址方式操作数在堆栈中,操作数物理地址由堆栈指针SP给出。C28x的软件堆栈从存储器的低地址变化到高地址,堆栈指针总是指向下一个位置。堆栈寻址有3种方式:-SP[6bit]、SP++和--SP,其说明分别见表3-4~表3-6。表3-4 AMODE=0时-SP[6bit]的语法说明指令实例:ADD AL,-SP[5] ;将堆栈单元的16位内容加到AL中ADDL ACC,-SP[12] ;将堆栈单元的32位内容加到ACC中MOVL -SP[36],ACC ;将ACC的32位内容存入堆栈单元表3-5 AMODE=x时SP++的语法说明注:指令执行后,若是locl6,则SP=SP+1;若是loc32,则SP=SP+2。

堆栈寻址方式详解

堆栈寻址方式(Stack Addressing Mode)操作数在堆栈中,操作数物理地址由堆栈指针SP给出。C28x的软件堆栈从存储器的低地址变化到高地址,堆栈指针总是指向下一个位置。在指令中提供6位的偏移量,表明数据入栈或出栈时,栈指针增加和减小值。

堆栈寻址有3种方式:∗-SP[6bit]、∗SP++和∗--SP,其说明分别见表3-4~表3-6。

3-4 AMODE=0时∗-SP[6bit]的语法说明

978-7-111-57271-8-Chapter03-15.jpg

指令实例:

ADD AL,∗-SP[5] ;将(SP-5)堆栈单元的16位内容加到AL中

ADDL ACC,∗-SP[12] ;将(SP-12)堆栈单元的32位内容加到ACC中

MOVL ∗-SP[36],ACC ;将ACC的32位内容存入(SP-36)堆栈单元

3-5 AMODE=x时∗SP++的语法说明

978-7-111-57271-8-Chapter03-16.jpg(www.daowen.com)

注:指令执行后,若是locl6,则SP=SP+1;若是loc32,则SP=SP+2。

指令实例:

MOV ∗SP++,AL ;将16位AL的内容压入堆栈,且SP=SP+1

MOVL ∗SP++,P ;将32位P寄存器的内容压入堆栈,且SP=SP+2

3-6 AMODE=x时∗--SP的语法说明

978-7-111-57271-8-Chapter03-17.jpg

指令实例:

ADD AL,∗--SP ;将栈顶16位内容弹出并加到AL寄存器中

MOVL ACC,∗--SP;将栈顶32位内容弹出并存入ACC寄存器中

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈