当前位置: 首页 > news >正文

常德网站建设开发公司株洲专业网站建设

常德网站建设开发公司,株洲专业网站建设,昆明建设厅培训网站,做网站链接还要服务器吗买ARM64汇编基础 主要内容 到目前为止#xff0c;大部分的移动设备都是64位的arm架构#xff0c;一直想抽个时间系统学习下#xff0c;这个周末就专门来学习下。毕竟两天的时间#xff0c;也只是简单的入门了解下#xff0c;为后续工作和学习打下基础。 本次学习的主要内容…ARM64汇编基础 主要内容 到目前为止大部分的移动设备都是64位的arm架构一直想抽个时间系统学习下这个周末就专门来学习下。毕竟两天的时间也只是简单的入门了解下为后续工作和学习打下基础。 本次学习的主要内容包括寄存器、指令系统以及堆栈函数相关的知识了解这些知识后后面就可以扩展进行学习了。话不多说接下来介绍这两天的学习内容。 主要的寄存器 学习任何一门汇编语言可能都需要了解有哪些寄存器。Arm64主要有以下几类寄存器。 通用寄存器 通用寄存器包括64位的x0~x2832位的版本叫做w0~28。w0~28是x0~x28的低32位版本。 X0~x7通常用来存储函数参数更多的参数通过栈来传递x0用作返回值。 程序寄存器 程序寄存器也叫程序计数器记录CPU当前执行的是哪条指令换句话说就是存储这当前cpu正在执行的指令地址。类似于x86汇编的eip寄存器。 堆栈指针寄存器 这类寄存器包括两个一个是叫做spstack pointer另一个叫做fpframe pointer也就是x29。这两个寄存器指向的地址确定了当前函数可以访问的栈空间大小。 链接寄存器 lrLink Register也就是x30它的作用就是存储着函数的返回地址。 程序状态寄存器 cpsr(Current Program Status Register)顾名思义就是记录者程序中的一系列状态。例如cmp指令结束后将比较结果存储在这个寄存器相关的标志位中。Cpsr寄存器的标志位布局如下图所示 零寄存器 wzr 32位 xzr 64位这两个寄存器中都是存储的0用来清零操作如指针和其它类型的变量清零。 调试方法 前面介绍了主要的寄存器后我们简单介绍下调试方法对主要的寄存器以及内存有初步的了解。由于本人相对对于lldb比较了解一点就使用lldb为例。 查看寄存器 register read 查看所有寄存器 register read x0 register read w0 查看x0的低32位版本 register write x0 0x6388 往寄存器x0写入0x6388 查看变量的地址 p a 查看变量a对应的内存地址 查看地址的内存数据 x a 查看变量a对应地址内存地址的内容 x 0x3442 查看地址0x3442的内容 单步调试 si 逐指令调试 si 继续执行 c 主要的指令 arm64的指令包括所有变种的话非常多因为我是主要关注软件方面嵌入式方面不了解所以个人觉得了解的指令不需要太多酒可以了。 ret指令 函数返回它的本质是将lr寄存器赋值到pc寄存器。 mov指令 数据传送指令mov指令只能操作寄存器例如mov x1, x0 add和sub 加法和减法比较简单 b和bl指令 b指令是无条件跳转b指令也可以带上条件如EQ\NE\GT\LT根据cpsr寄存器中的标志为决定是否跳转。 Bl指令是带返回的跳转指令它所做的事情如下 将下一条指令的地址存储到lrx30寄存器中跳转到标记处开始执行代码 cmp指令 cmp指令比较两个寄存器中值的大小比较的结果影响cpsr寄存器中相关的标记位。如N和Z位。例如 cmp x0, x1 内存加载指令ldrldur ldp 将内存中的数据加载到寄存器中如 ldr x0, [x1] ldur x0, [x1, #0x4] ldur x0, [x1, #0x4]! ldur x0, [x1] , #0x4! ldur x0, [x1,x2] 一般情况下ldr用于正向的偏移地址ldur用于负向的偏移地址 ldp p是pair的意思。 内存存储指令str, stur, stp 将寄存器的值写入内存的指令用法和ldr指令类似。 C函数的实现 C语言函数实现分为叶子函数和非叶子函数函数的参数和返回值前面的通用寄存器已经介绍现在是介绍叶子和非叶子函数的实现。 叶子函数指没有调用其它函数的函数。叶子函数开头是分配函数的栈空间结束的时候回收栈空间一个典型的过程如下 非叶子函数指中间有调用其它函数的函数一个典型的叶子函数如下所示 至此arm64汇编的基础知识就介绍完毕相信有了这些基础之后后面的工作和学习会更有针对性的去查相关资料。
http://www.eeditor.cn/news/119683/

相关文章:

  • 网站网站建设设计公司网站建设职业培训
  • 婚恋网站天津住房城乡建设厅官方网站
  • 怎么在手机上搭建网站app开发的公司
  • 自己做网络主播的网站模板ppt
  • 车辆年检查询系统官方网站郫县哪里有做网站的
  • 淘客网站怎么做返利360推广和百度推广哪个好
  • 网站外链分析棋乐平台代理
  • google网站打不开了陕西省建设造价协会网站
  • 个人做门户网站需要注册合肥做网站加盟
  • 网站 做百度推广有没有效果网站建站网站496565
  • 互动网站天津网站备案去哪
  • 如何知道一个网站用什么建设的网站建站ddp
  • 大学生做社交网站推文关键词生成器
  • 浙江省门户网站番禺制作网站设计
  • 学院网站建设成效小程序在哪个网站做
  • 有没有便宜的网站制作软件定制合同模板
  • 成都网站建设工资数据库做后台网站
  • 免费建站免费二级数据库策略网站推广的有效方法有
  • 域名访问网站啥意思多语言网站制作
  • 网站防止攻击做番号网站的 违法
  • 网站虚拟主机哪个好wordpress页面专题
  • dw制作wap网站怎么做申请公司需要什么费用
  • asp.net网站模板免费下载文化共享工程网站建设情况
  • 郑州营销型网站推广工具专业瓷砖美缝网站怎么做
  • 百度网站管理员工具郑州网站设计的公司
  • 做搬家网站的素材汕头网站建设过程
  • 云南百度建站新密网站
  • 网站开发答辩演讲公司电子产品网站模板
  • 0基础多久学会网站架构石家庄市城乡和建设局网站
  • 遇到钓鱼网站怎么做长宁网站建设公司