当前位置:网站首页> 科技>正文

arm32和64的区别

发布于:2020-05-22 13:13:29发布者:天晴网友

最近三个月的时间,都在进行解码库的arm架构汇编优化,包括arm32位汇编优化和arm64位汇编优化。在arm32位入门之后,只要掌握了两种架构的寄存器和指令集差异之后,就可以很快上手编写arm64位汇编代码了。下面就arm32位和arm64位架构、寄存器和指令差异进行分析总结。

架构差异

ARM是RISC(精简指令集)处理器,不同于x86指令集(CISC,复杂指令集)。

Arm32位是ARMV7架构,32位的,对应处理器为Cortex-A15等; iphone5以前均是32位的;

需要注意:ARMV7-A和ARMV7-R系列支持neon指令集,ARMv7-M系列不支持neon指令集。

ARM64位采用ARMv8架构,64位操作长度,对应处理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等,苹果手机从iphone 5s开始使用64位的处理器。

寄存器差异

04

1 ARM通用寄存器

ARM32位通用寄存器和ARM64位通用寄存器差异详见:ARM寄存器及其说明

04

2 NEON寄存器

ARM32位neon寄存器和ARM64位neon寄存器差异:

32位下 NEON寄存器:

包括:

32个S寄存器,S0~S31,(单字,32bit)

32个D寄存器,D0~D31,(双字,64bit)

16个Q寄存器,Q0~Q15,(四字,128bit)

使用注意:

01

NEON寄存器将每个寄存器均视为一个向量,该向量又包含1,2,4,8或16个大小和类型均相同的元素。也可以将各个元素当做标量访问。

NEON的这三种寄存器是重叠的,物理地址是一样的。

02

NEON寄存器在使用时,如果用到d8~d15寄存器,需要先入栈保存vpush {d8-d15},使用完之后要出栈vpop {d8-d15}。

64位下NEON寄存器:

包括:

32个B寄存器(B0~B31),8bit

32个H寄存器(H0~H31),半字 16bit

32个S寄存器(S0~S31) ,单字 32bit

32个D寄存器(D0~D31),双字 64bit

32个Q寄存器(V0~V31),四字 128bit

不同位数下寄存器之间的关系如下图所示:

其中S0是D0的低半部分,D0是V0的低半部分 。

arm32和64的区别

相关数码科技+更多
  • win10镜像怎样下载安装

    win10镜像怎样下载安装

    在办公的时候会遇到电脑越来越卡的问题,如果win10专业版电脑系统也遇到了卡顿的问题应该怎么解决呢?很多朋友会在这个时候选择重装系统来解决办法,接下来就以云骑士装机大师

  • 抖音里面飞起来的视频是怎么拍的

    抖音里面飞起来的视频是怎么拍的

    抖音 里面的飞天视频怎么弄?不少的小伙伴们也是比较喜欢刷抖音,最近被这种飞天视频所吸引到了,想要知道这个视频该怎么弄,下面就一起来看看吧。 抖音里面的飞天视频怎么弄

  • win10关闭Windows Ink的具体方法

    win10关闭Windows Ink的具体方法

    Windows Ink在win10系统中的作用与触屏有关,因此如果电脑不支持触屏,则不需要开启这个功能。今天小编来教大家win10如何关闭Windows Ink,感兴趣的朋友快来看看吧! 首先按Win+R打开运行,

  • hq和sq音乐有什么区别

    hq和sq音乐有什么区别

    hq和sq音乐有什么区别? 一、音乐损失度不同 HQ指的是比特率为320kbps的高品质mp3格式的歌曲,SQ指的是无损音乐flac或者ape格式的歌曲。 二、音乐体验不同 用专用的音乐耳机听同一首歌曲

  • qq安装不了是什么原因

    qq安装不了是什么原因

    首先qq安装不了的第一个原因就是之前卸载过qq,而且还存在残留信息,比如注册表之类的,因此无法成功安装,需要检查一下文件夹,把残留信息全部清除掉。第二个原因就是有可能下

  • oppo和华为怎么互传

    oppo和华为怎么互传

    oppo和华为怎么互传?一起来了解一下。 01 两部手机分别安装 百度网盘 02 点击选择账号登录 03 登录进入主界面后,点击右下角更多 04 点击手机备份 05 可以选择图片,音频备份 06 还可以

文章评论