ATPCS关于堆栈和寄存器的使用规则
2017-12-19 16:31
411 查看
1、 ATPCS规定,ARM 的数据堆栈为FD(Full Decrease)
型堆栈,即满递减堆栈。
2、ATPCS标准规定,对于参数个数不多于4
的函数,编译器必须按参数在列表中的顺序,自左向右为它们分配寄存器
R0~R3。其中函数返回时,R0 还被用来存放函数的返回值。如果函数的参数多于4
个,那么多余的参数则按自右向左的顺序压入数据堆栈,即参数入栈顺序与参数顺序相反。
型堆栈,即满递减堆栈。
2、ATPCS标准规定,对于参数个数不多于4
的函数,编译器必须按参数在列表中的顺序,自左向右为它们分配寄存器
R0~R3。其中函数返回时,R0 还被用来存放函数的返回值。如果函数的参数多于4
个,那么多余的参数则按自右向左的顺序压入数据堆栈,即参数入栈顺序与参数顺序相反。
相关文章推荐
- ATPCS和内嵌汇编:arm处理器上函数调用寄存器的使用规则
- ATPCS 寄存器使用规则
- 关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》(转载)
- delphi与汇编笔记(2)------关于EBP寄存器的说明与使用
- 关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》
- 关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》
- Gmail修改了登陆规则,现有的关于Gmail的API都无法使用了
- 关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》
- 关于ASSERT(断言)使用的规则
- ATPCS使用规则
- ATPCS-ARM寄存器及值传递规则
- ARM STM32F中ADC中 规则通道 注入通道 序列寄存器(SQR JSQR)的使用方法
- 关于字符串定界符的使用规则
- 关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》
- 关于asterisk拨号规则中使用的变量
- F#学习存疑求解答:关于使用Cotinuation仍然堆栈溢出的问题
- make的参数 隐含规则使用的变量 关于命令参数的变量
- 在AIX上用IBM的JVM,内存溢出时默认地会产生javacore文件(关于cpu的)和heapdump文件(关于内存的)。手动产生堆栈文件的方法是使用kill -3
- delphi与汇编笔记(2)------关于EBP寄存器的说明与使用
- 关于子进程中的exit-----子进程中使用exit对于子进程复制父进程数据段、堆栈的影响