0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

指令集是什么?ARM封杀对华为有什么影响

Wildesbeast 来源:今日头条 作者:朱祺QIQI 2020-02-07 15:49 次阅读

计算机语言经过不断发展分为三个层次,高级语言、汇编语言和机器语言。

1、机器语言

我们人类在计算数字的时候习惯于用10进制的表示方法,据说是因为人类有10根手指的关系。但是对计算机来说靠的是高低电平来表示所有的信息,在这个前提下要以10进制的方式表示信息就比较复杂,最适合计算机的表示方式就是高电平代表1,低电平代表0,所有的信息都是以0和1的组合方式来表示,不管是简单的加法还是微信还是游戏,本质上就是0和1组成的指令进行计算的结果。因此以0和1组成的指令是计算机最底层的语言,事实上计算机也仅能理解这种沟通方式,这种语言叫机器语言。

2、汇编语言

机器语言的问题在于人类要传递给计算机任何信息都必须以0和1的组合序列表达,不符合人类的沟通习惯,因此有了助记符的概念并在这个基础上产生了汇编语言,通俗来说我们需要将1+2这种信息表达为计算机可接受的0和1的组合,因为人类更能接受1+2这种表达方式,而计算机只能接受0和1的表达方式,汇编语言就是初步解决了人类和计算机的沟通难度,提高了沟通效率。

3、指令集的作用

以下以实际ARMv8指令集举一个最简单的加法例子来说明指令集的作用。

高级语言语句:1+2

汇编语言语句:ADD X9(存放1+2的结果),X10(存放1),X11(存放2)

在编译成机器语言时,需要解决几个问题:

(1) 怎么让计算机明白ADD是什么意思

(2) 怎么让计算机以0和1的组合序列表达1+2这个计算指令

先解决第一个问题,芯片厂商定义一串序列表示加法,根据ARMv8指令集,1112(十进制)代表加法,进一步表示为二进制为10001011000(二进制)。

解决第二个问题分为两个步骤,通俗来说就是单词和语法,单词的翻译结果为ADD=1112(十进制)=10001011000(二进制);X9寄存器=9(十进制)=1001(二进制);X10寄存器=10(十进制)=1010(二进制);X11寄存器=11(十进制)=1011(二进制)。之后是语法也就是按照什么顺序让计算机读懂以及每个二进制字段所占的位数。ARMv8指令集对于加法的指令格式如下:

这里忽略位移量这个参数,按照指令格式将1+2填入此表:

最终根据ARMv8指令集,1+2的机器语言指令为10001011000010110000000101001001。

4、ARM封杀对华为的影响

目前采用发布于2011年的ARMv8指令集的公司有苹果公司、高通、华为等,ARM本身是一家设计公司不生产芯片,采用不同等级的授权方式授权芯片制造厂根据其设计制造芯片,根据其授权生产的芯片就必须采用其指令集。根据以上例子,ARM架构的芯片认为操作码1112代表加法,目前苹果、高通、华为的芯片都认为1112代表加法。封杀华为后,华为采用自己的芯片就有自己的指令集,在新的指令集下,1112未必代表加法并且同样要表示1+2,指令结构也就是语法也会不一样。由于机器语言是最底层并且计算机唯一能读懂的语言,指令集的改变就涉及所有的上层程序的重写,重中之重就是操作系统。无法要求同一个操作系统适应不同的指令集。所以相对技术,芯片的市场占有率是指令集能否成为公认标准的唯一指标,而ARM架构的芯片在目前移动端的市场占有率接近垄断。中国移动设备是一个巨大的市场,客观分析,并不是ARM封杀华为后华为就会倒掉,只要市场足够大,采用华为芯片和指令集的设备足够多,华为芯片就会打破ARM垄断的格局成为和ARM并列的芯片设计方,甚至如果芯片性能能够超越ARM架构的芯片的情况下,华为芯片将会在移动端市场与苹果高通平分秋色。一切还是华为技术是否足够强大,像其5G技术一样位居世界前列并能让市场接受和欢迎。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9056

    浏览量

    366845
  • 计算机
    +关注

    关注

    19

    文章

    7428

    浏览量

    87727
  • 指令
    +关注

    关注

    1

    文章

    607

    浏览量

    35651
收藏 人收藏

    评论

    相关推荐

    常用ARM指令集及汇编

    常用ARM指令集及汇编ARM处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单,
    发表于 11-23 09:38

    ARM指令集文章集合

    三、指令集如果你想要集中学习一下关于ARM指令集方面的知识(比如下面几个知识点),可以看下下面的文章1、机器码2、运算指令3、控制指令4、汇
    发表于 09-07 22:06

    常用的ARM汇编指令集哪些?

    常用的ARM汇编指令集哪些?
    发表于 10-25 07:06

    ARM指令集的特点哪些呢

    1、ARM指令集ARM指令集格式ARM指令集ARM
    发表于 12-14 07:24

    ARM指令集和THUMB指令集分别在什么情况使用

    ARM7的来:ARM指令集和THUMB指令集分别在什么情况使用,它们什么区别?通俗的解释一下
    发表于 11-02 14:20

    ARM指令集下载 arm指令集参考手册

    ARM指令集下载 arm指令集参考手册, ARM 指令集 寄存器和处理器模式(26-bi
    发表于 12-25 09:20 118次下载

    常用arm指令集及汇编

    常用arm指令集及汇编
    发表于 09-09 14:22 34次下载
    常用<b class='flag-5'>arm</b><b class='flag-5'>指令集</b>及汇编

    arm指令集(1)

    arm指令集(1)  ARM跳转指令可以从当前指令向前或向后的32MB地址空间跳转。这类跳转指令
    发表于 03-02 15:46 79次下载

    ARM指令集详解

    ARM指令集详解 内容提要 ARM指令集 ARM指令集分类与
    发表于 03-09 09:39 263次下载
    <b class='flag-5'>ARM</b><b class='flag-5'>指令集</b>详解

    ARM指令集介绍

    arm开发板 嵌入式开发 指令集 PDF文档。
    发表于 05-03 16:42 5次下载

    常用的ARM指令集及汇编

    常用的ARM指令集及汇编
    发表于 10-30 10:07 24次下载
    常用的<b class='flag-5'>ARM</b><b class='flag-5'>指令集</b>及汇编

    thumb指令集是什么_thumb指令集arm指令集的区别

    thumb指令集arm指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,thumb指令集在保留32位代码优势的同时,大大的节省了系统的存
    发表于 11-03 17:34 1.8w次阅读
    thumb<b class='flag-5'>指令集</b>是什么_thumb<b class='flag-5'>指令集</b>与<b class='flag-5'>arm</b><b class='flag-5'>指令集</b>的区别

    ARM架构及ARM指令集 Thumb指令集你了解多少?

    ARM架构及ARM指令集、Thumb指令集你了解多少?
    的头像 发表于 02-26 16:09 7090次阅读

    华为为什么不研发新的指令集,而去买ARM的专利

    很多人都在讨论,为什么华为公司不自己研发一套芯片指令集,要买ARM的专利,是没能力研发吗?
    的头像 发表于 03-01 08:00 5926次阅读

    ARM处理器的寻址方式和指令集介绍

    ARM处理器是基于精简指令集计算机(RISC原理设计的,指令集和相关峄码机制较为简单。ARM7TDM(S)具有32位ARM
    发表于 11-24 17:24 33次下载
    <b class='flag-5'>ARM</b>处理器的寻址方式和<b class='flag-5'>指令集</b>介绍