您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 子程序指针 >

基本的ATPCS规则

发布时间:2019-07-02 05:26 来源:未知 编辑:admin

  基本ATPCS规定了在子程序调用时的一些基本规则,包括下面四方面的内容。

  子程序间通过寄存器R0~R3来传递参数,被调用的子程序在返回前无需恢复寄存器R0~R3的内容。

  在子程序中,使用寄存器R4~R11保存局部变量,这时寄存器可以记作V1~V8。如果在子程序中用到了寄存器V1~V8中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。在Thumb程序中,通常只能使用寄存器R4~R7来保存局部变量。

  寄存器R12用作子程序间的Scratch寄存器(用于保存SP, 在函数返回时使用该寄存器出栈),记作IP。

  寄存器R13用作数据栈指针,记作SP。在子程序中寄存器R13不能用作其他用途。寄存器SP在进入子程序时的值和退出子程序的值必须相等。

  寄存器R14称为连接寄存器,记作LR。它用作保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。

  栈指针是保存了栈顶地址的寄存器值。栈指针通常可以指向不同的位置。一般的,栈可以有以下四种数据栈。

  当栈指针指向与栈顶元素时,称为Full栈。当栈指针指向与栈顶元素相邻的一个元素时,称为Empty栈。数据栈的增长方向也可以不同,当数据栈向内存减少的地址方向增长时,称为Descending栈;反之称为Ascending栈。ARM的ATPCS规定默认的数据栈为Full Descending(FD)类型,并且对数据栈的操作是8字节对齐的。

  对于参数个数可变的子程序,但参数不超过四个时,可以使用寄存器R0~R3来传递参数;当参数超过四个时,还可以使用数据栈来传递参数。在传递参数时,将所有参数看作是存放在连续的内存单元中的字数据。然后,依次将各字数据传送到寄存器R0、R1、R2、R3中,如果参数多于四个,则将剩余的字数据传送到数据栈中,入栈的顺序与参数顺序相反,即最后一个字数据先入栈。

  对于参数个数固定的子程序,参数传递与参数个数可变的子程序参数传递的规则不同,如果系统包含浮点运算的硬件部件,浮点参数将按各个浮点参数按顺序处理和为每个浮点参数分配FP寄存器的规则传递。分配的方法是,满足该浮点参数需要的且编号最小的一组连续的FP寄存器中,第一个整数参数,通过寄存器R0~R3来传递,其他参数通过数据栈传递。

  如果结果为复合型的浮点数(如复数),可以通过寄存器F0~FN或者D0~DN返回。

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。基本ATPCS规定了在子程序调用时的一些基本...博文来自:AspenStars

  ATPCS规则为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。 一.    ATPCS概述A...博文来自:zhangjian的专栏

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则...  一.ATPCS概述...      ...博文来自:jamestaosh

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则...一.ATPCS概述...    ATPC...博文来自:bird67的专栏

  为了优化armcpu做deinterlace,学习arm的汇编,对于arm汇编的传参规则不了解,特此记录。原文链接:博文

  为了使C语言程序和汇编程序之间能够互相调用,必须为子程序间的调用制定规则~~然后呢,在ARM处理器中,这个规则被称为ATPCS:ARM程序和Thumb程序中子程序调用的规则(如果用过51单片机汇编和C...博文来自:wangpengqi的专栏

  1、 ATPCS规定,ARM的数据堆栈为FD(FullDecrease)型堆栈,即满递减堆栈。2、ATPCS标准规定,对于参数个数不多于4的函数,编译器必须按参数在列表中的顺序,自左向右为它们分配寄存...博文来自:XiaoFengfengLikeSoda的博客

  这是我下载的别人的资源,文章写得还不错,虽然简单了一点,但是基本的内容都包括了

  c/c++ procedure call standard for the arm architecture V2.10

  ATPCS规定了arm一些子程序间调用的基本规则。这些基本规则包括子程序调用过程中寄存器的使用规则,数据栈的使用规则,参数的传递规则。

  ARM架构中使用R12作为子程序间的scratch寄存器(ATPCS中规定)。可以将R12用于保存SP,在函数返回时使用该寄存器出栈,记作ip。或者又比如:Uboot程序中主程序调用cpu_init_...博文来自:fengyee_zju的专栏

  研究的是V4版本ARM内核的函数调用规则。MDK4.2、J-LinkarmV4.34、J-Link硬件仿线版本。ATPCS规定寄存器的使用规则如下:1.子程序通过R0~R3来传递参数2.子程序使...博文来自:人生需要博一把

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则...一.ATPCS概述...      AT...博文来自:蜗牛快跑专栏

  首先一定要明白一点,“栈”和”堆“本质上是一小块”内存“,用于程序的运行中存放中间变量。  栈有很多种,这里介绍最常见的一种所谓FD型栈,即数据栈内存地址从高向低呈减小的方向增长,栈指针指向栈顶元...博文来自:猪哥的专栏

  在C程序和ARM汇编程序之间相互调用时必须遵守ATPCS规则。ATPCS规定了一些子程序间调用的基本规则,比如:1、寄存器的使用规则子程序之间通过寄存器r0~r3来传递参数,当参数个数多于4个时,使用...博文来自:xiezhi123456的博客

  转载请注明出处作者:小马很多人学了ARM好长时间也不清楚到底什么是ATPCS。其实ADS安装文件里有一个英文PDF文档专门讲什么是ATPCS,但由于是英文的,很少有人完整的看过这篇文档。所以我想简单介...博文来自:思无邪

  基本概念ATPCS(ARM-ThumbProcedureCallStandard)规定了一些子程序间调用的基本规则,这些规则包括子程序调用过程中寄存器的使用规则,数据栈的使用规则,参数的传递规则。有了...博文来自:AndrewYZWang的博客

  ATPCS规则 为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。一.ATPCS概述ATPCS...博文来自:drinkingcode

  参数传递规则参数不超过4个时,可以使用寄存器R0~R3来传递参数,当参数超过4个时,还可以使用数据栈来传递参数。结果为一个32位整数时,可以通过寄存器R0返回结果为一个64位整数时,可以通过寄存器R0...博文来自:weixin_34198453的博客

  [STM32/STM8经验] AAPCS规则要求堆栈保持8字节对齐 一.为什么要保证堆栈8字节对齐AAPCS规则要求堆栈保持8字节对齐。如果不对齐,调用一般的函数也是没问题的。但是当调用需要严格遵守A...博文来自:one shot,one kill.

  ATPCS即ARM-THUMBprocedurecallstandard的简称。PCS规定了应用程序的函数可以如何分开地写,分开地编译,最后将它们连接在一起,所以它实际上定义了一套有关过程(函数)调用...博文来自:oZhangYi1234的专栏

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则...一.ATPCS概述...    ATPC...博文来自:kickxxx的专栏

  在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时的初始化,进出中断时的环境保存、恢复,对性能要求非常苛刻的函数等。1、相对跳转指令:b、bl不同之处在于:bl指令除了跳转之外,还将返回地...博文来自:Skylar

  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则...

  这是官方英文版, Procedure Call Standard for the ARM Architecture, ARM 体系结构的基础标准应用程序二进制接口。

  在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间...博文来自:Studying……

  APCS 简介(ARM 过程调用标准)· 介绍 · 寄存器命名 · 设计关键 · 一致性 · 栈 · 回溯结构 · 实际参数 · 函数退出 · 建立栈回溯结构 · APCS 标准 · 对编码有用的东西...博文来自:自信的尘埃

  介绍APCS,ARM过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确...博文来自:做一个有技术追求的人

  题外话:对于大部分的前端人员或者是不懂C/C++的人员来说,我们对于编译过程并不是非常了解,那么我们先说一下,什么是编译一般来说,无论是C,C++,还是pas,首先都是把源文件编译成中间代码文件,在W...博文来自:牛谱乐的博客

  1、包/类/方法/变量命名规范包名:英文,小写,能明确表示业务。【如:prodoperate】类名:英文,每个单词首字母大写,明确代表含义(表+层)【如:ProdInfo,ProdInfoDao,P...博文来自:dingxingmei的专栏

  makefile文件中包含了一组用来编译应用程序的规则。make命令执行时所看到的第一项规则,会被作为默认规则使用。一项规则可分成三个部分:工作目标(target)、它的必要条件(prerequisi...博文来自:aisxyz

  这是原网址,大家可以参考一下:点击打开链接最佳原则坚持制定好的代码规范。无论团队人数多少,代码应该同出一门。如果你想要为这个规范做贡献或觉得有不合理的地方,请访问NewIssue。命名规则项目命名全部...博文来自:xuzm1821321997的博客

  相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是: ⑴ 找出算法...博文来自:杨威的博客

  本帖只谈技术实现,首先我们自己来编译一个比特币客户端吧, 技术讨论,欢迎大家入伙(注明:csdn)。...博文来自:开心乐源的专栏

  帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能。首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer...博文来自:kongwei521的专栏

  扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自:Lynn_Blog

  mybatis简单小巧易于上手,方便浏览修改sql语句博文来自:努力+坚持,而且还很年轻

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:Websites

  Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。   在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 (...博文来自:朱小厮的博客

  我们在做项目的时候有时候需要给图片添加水印,水寒今天就遇到了这样的问题,所以搞了一个工具类,贴出来大家直接调用就行。/** * 图片工具类 * @author 水寒 * 欢迎访问水寒的个人博客:...博文来自:水寒

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  1. 规则引擎面临的问题:业务规则的实现大部分是由开发人员来实现的 业务规则需要业务分析人员能够阅读和理解 业务规则的可读性和用户的友好性都不太好2. DSL领域特殊语言DSL == Domain...博文来自:哎幽的成长

  nginx 是个轻量级的Web服务器,比Apache不差博文来自:老徐2014

  若是研究区在中国,则在地理空间数据云有中国区合成好的数据,直接下载用即可。数据格式为TIF。坐标为WGS84,不用再转换投影。下载网址为:博文来自:hengcall的博客

http://rasptools.com/zichengxuzhizhen/186.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有