【摘要】:堆栈寻址方式操作数在堆栈中,操作数物理地址由堆栈指针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]的语法说明
指令实例:
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++的语法说明
(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的语法说明
指令实例:
ADD AL,∗--SP ;将栈顶16位内容弹出并加到AL寄存器中
MOVL ACC,∗--SP;将栈顶32位内容弹出并存入ACC寄存器中
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Piccolo系列DSP控制器原理与开发的文章