ARM堆栈寻址

堆栈的分类:
生长方向:
1.向上生长:压栈的时候SP指针指向内存的高地址
2.向下生长:压栈的时候SP指针指向内存的低地址(ATPCS:ARM)
满和空:
1.满堆栈:压栈先修改堆栈指针SP,然后在存数据
2.空堆栈:压栈先存数据,然后修改堆栈指针SP
四种堆栈类型:
1.FA   递增满
2.FD   递减满(ARM 采用的)
3.EA   递增空
4.ED   递减空
压栈指令:
 STM/LDM
1.用什么方式压栈,就要什么方式出栈
 STMEA  SP!,{R1,R2,R3,R4} 压栈
 LDMEA  SP!,{R1,R2,R3,R4}出栈
 2.压栈和出栈是成对出现的,有压栈就要出栈
 3.压栈时候,寄存器编号小的存储在内存的低地址

猜你喜欢

转载自blog.csdn.net/xiezhi123456/article/details/83154813