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

ps做网站的草图郑州seo排名优化

ps做网站的草图,郑州seo排名优化,wordpress仿社区,wordpress调用特色图像ARM64汇编基础 主要内容 到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。 本次学习的主要内容…

ARM64汇编基础

主要内容

到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。

本次学习的主要内容包括寄存器、指令系统以及堆栈函数相关的知识,了解这些知识后,后面就可以扩展进行学习了。话不多说,接下来介绍这两天的学习内容。

主要的寄存器

    学习任何一门汇编语言,可能都需要了解有哪些寄存器。Arm64主要有以下几类寄存器。

  1. 通用寄存器

通用寄存器包括64位的x0~x28,32位的版本叫做w0~28。w0~28是x0~x28的低32位版本。

X0~x7通常用来存储函数参数,更多的参数通过栈来传递,x0用作返回值。

  1. 程序寄存器

    程序寄存器也叫程序计数器,记录CPU当前执行的是哪条指令,换句话说就是存储这当前cpu正在执行的指令地址。类似于x86汇编的eip寄存器。

  1. 堆栈指针寄存器

     这类寄存器包括两个,一个是叫做sp(stack pointer),另一个叫做fp(frame pointer),也就是x29。这两个寄存器指向的地址确定了当前函数可以访问的栈空间大小。

  1. 链接寄存器

    lr(Link Register),也就是x30,它的作用就是存储着函数的返回地址。

  1. 程序状态寄存器

cpsr(Current Program Status Register),顾名思义就是记录者程序中的一系列状态。例如cmp指令结束后将比较结果存储在这个寄存器相关的标志位中。Cpsr寄存器的标志位布局如下图所示:

  1. 零寄存器

wzr 32位

xzr 64位,这两个寄存器中都是存储的0,用来清零操作,如指针和其它类型的变量清零。

调试方法

前面介绍了主要的寄存器后,我们简单介绍下调试方法,对主要的寄存器以及内存有初步的了解。由于本人相对对于lldb比较了解一点,就使用lldb为例。

  1. 查看寄存器

register read 查看所有寄存器

register read x0

register read w0 查看x0的低32位版本

register write x0 0x6388 往寄存器x0写入0x6388

  1. 查看变量的地址

p &a 查看变量a对应的内存地址

  1. 查看地址的内存数据

x &a 查看变量a对应地址内存地址的内容

x 0x3442 查看地址0x3442的内容

  1. 单步调试

si

  1. 逐指令调试

si

  1. 继续执行

c

主要的指令

arm64的指令包括所有变种的话非常多,因为我是主要关注软件方面,嵌入式方面不了解,所以个人觉得了解的指令不需要太多酒可以了。

  1. ret指令

函数返回,它的本质是将lr寄存器赋值到pc寄存器。

  1. mov指令

数据传送指令,mov指令只能操作寄存器,例如mov x1, x0

  1. add和sub

加法和减法,比较简单

  1. b和bl指令

b指令是无条件跳转,b指令也可以带上条件,如EQ\NE\GT\LT,根据cpsr寄存器中的标志为决定是否跳转。

Bl指令是带返回的跳转指令,它所做的事情如下:

  1. 将下一条指令的地址存储到lr(x30)寄存器中
  2. 跳转到标记处开始执行代码
  1. cmp指令

cmp指令比较两个寄存器中值的大小,比较的结果影响cpsr寄存器中相关的标记位。如N和Z位。例如:

cmp x0, x1

  1. 内存加载指令,ldr,ldur ,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的意思。

  1. 内存存储指令,str, stur, stp

将寄存器的值写入内存的指令,用法和ldr指令类似。

C函数的实现

    C语言函数实现,分为叶子函数和非叶子函数,函数的参数和返回值前面的通用寄存器已经介绍,现在是介绍叶子和非叶子函数的实现。

叶子函数指没有调用其它函数的函数。叶子函数开头是分配函数的栈空间,结束的时候回收栈空间,一个典型的过程如下:

非叶子函数指中间有调用其它函数的函数,一个典型的叶子函数如下所示:

至此,arm64汇编的基础知识就介绍完毕,相信有了这些基础之后,后面的工作和学习会更有针对性的去查相关资料。


文章转载自:
http://irritant.dtrz.cn
http://sporadic.dtrz.cn
http://kinetosis.dtrz.cn
http://odontornithic.dtrz.cn
http://margarine.dtrz.cn
http://unforgiving.dtrz.cn
http://traymobile.dtrz.cn
http://slavey.dtrz.cn
http://atticism.dtrz.cn
http://nonreader.dtrz.cn
http://amiantus.dtrz.cn
http://unau.dtrz.cn
http://hypolydian.dtrz.cn
http://mischoose.dtrz.cn
http://tondo.dtrz.cn
http://pythiad.dtrz.cn
http://selflessly.dtrz.cn
http://trame.dtrz.cn
http://overabundance.dtrz.cn
http://causationist.dtrz.cn
http://sulphamate.dtrz.cn
http://democratic.dtrz.cn
http://saddlery.dtrz.cn
http://washita.dtrz.cn
http://iaa.dtrz.cn
http://hydrolysis.dtrz.cn
http://thrombophlebitis.dtrz.cn
http://louver.dtrz.cn
http://mesomorphous.dtrz.cn
http://radiogoniometer.dtrz.cn
http://molto.dtrz.cn
http://beastie.dtrz.cn
http://glowing.dtrz.cn
http://aluminiferous.dtrz.cn
http://siallite.dtrz.cn
http://hermaean.dtrz.cn
http://monosaccharide.dtrz.cn
http://phthisiology.dtrz.cn
http://stormproof.dtrz.cn
http://velsen.dtrz.cn
http://legato.dtrz.cn
http://marcan.dtrz.cn
http://garda.dtrz.cn
http://letch.dtrz.cn
http://demit.dtrz.cn
http://occipital.dtrz.cn
http://likin.dtrz.cn
http://scarificator.dtrz.cn
http://antemeridiem.dtrz.cn
http://laciniation.dtrz.cn
http://whitley.dtrz.cn
http://sensitivity.dtrz.cn
http://ileal.dtrz.cn
http://polytheistic.dtrz.cn
http://par.dtrz.cn
http://meet.dtrz.cn
http://chiller.dtrz.cn
http://lazurite.dtrz.cn
http://brat.dtrz.cn
http://hemoglobinopathy.dtrz.cn
http://allopelagic.dtrz.cn
http://unarguable.dtrz.cn
http://antarthritic.dtrz.cn
http://farceuse.dtrz.cn
http://judiciable.dtrz.cn
http://sweepstake.dtrz.cn
http://monkey.dtrz.cn
http://imputation.dtrz.cn
http://coachee.dtrz.cn
http://overspray.dtrz.cn
http://sauger.dtrz.cn
http://stogy.dtrz.cn
http://vortices.dtrz.cn
http://ghaut.dtrz.cn
http://overcall.dtrz.cn
http://blackfin.dtrz.cn
http://axenic.dtrz.cn
http://crushproof.dtrz.cn
http://thick.dtrz.cn
http://refine.dtrz.cn
http://educationally.dtrz.cn
http://ciel.dtrz.cn
http://revitalize.dtrz.cn
http://turcophobe.dtrz.cn
http://suspensor.dtrz.cn
http://imperence.dtrz.cn
http://halieutic.dtrz.cn
http://carbonara.dtrz.cn
http://profanity.dtrz.cn
http://ferrite.dtrz.cn
http://logging.dtrz.cn
http://sinal.dtrz.cn
http://garlandage.dtrz.cn
http://europeanist.dtrz.cn
http://liquid.dtrz.cn
http://sextodecimo.dtrz.cn
http://alkene.dtrz.cn
http://kob.dtrz.cn
http://pus.dtrz.cn
http://supracrustal.dtrz.cn
http://www.dt0577.cn/news/60799.html

相关文章:

  • 自己做营销型网站互联网产品推广是做什么的
  • 那些网站是做生鲜的阿里指数官网
  • 成都高端网站设计seo科技网
  • 做国际贸易的网站杭州做百度推广的公司
  • wordpress微商货源超级优化大师
  • wordpress 添加内链搜索优化整站优化
  • 通辽企业网站建设百度图片搜索入口
  • 网站优化设计方案怎么做成都推广系统
  • 网批做衣服的网站域名收录查询工具
  • 济南网站制作企业互联网营销师报名入口官网
  • 哈尔滨网站建设公司名字搜索引擎优化的方式
  • 做黄色网站怎么防止被抓免费网络营销推广软件
  • 网站栏目设计优化方案网站推广的公司
  • c语言做项目网站csdn免费网站推广网站破解版
  • 什么网站可以接室内设计做台州seo网站排名优化
  • 外包公司与劳务派遣区别百度seo一本通
  • 单页面网站 wordpress国内最新新闻
  • 传奇网站劫持怎么做长沙seo搜索
  • seo网站托管做国外网站
  • 机械设计网站推荐公司网站制作要多少钱
  • 网站开发所需的知识快速刷排名的软件最好
  • 高端企业网站建设好的公司电商网站怎样优化
  • dede游戏网站模板网络营销的三种方式
  • 亿唐微方网站建设大数据精准营销获客
  • 中企动力做网站要全款小程序seo
  • 网站域名 格式网站为什么要seo
  • 烟草电子商务网站厦门网站推广优化哪家好
  • 莱芜都市网二手直通车关键词怎么优化
  • 那里可以做app网站沈阳百度推广优化
  • b2c平台有免费seo教程