CPU的指令集从主流的体系结构上分为精简指令集(RISC)和复杂指令集(CISC)。嵌入式系统中的主流处理器——ARM处理器,所使用的就是精简指令集。而桌面领域的处理器大部分使用的是复杂指令集,比如我们熟悉的Intel的X86系列处理器。我们把ARM处理器所使用的指令集称为ARM指令集,把X86处理器所使用的指令集称为X86指令集,ARM处理器与X86处理器采用不同类型的指令集,因此两种处理器也表现出了诸多差异。

首先,我们就来看一看基于RISC的ARM的体系结构:

ARM是一种RISC体系结构的处理器芯片。和传统的CISC体系结构不同,RISC 有以下的几个特点:

1)简洁的指令集——为了保证CPU可以在高时钟频率下单周期执行指令,RISC指令集只提供很有限的操作(例如add,sub,mul等),而复杂的操作都需要由这些简单的指令来组合进行模拟。并且,每一条指令不仅执行时间固定,其指令长度也是固定的,这样,在译码阶段就可以对下一条指令进行预取

2) Load-Store 结构——这个应该是RISC 设计中比较有特点的一部分。在RISC 中,CPU并不会对内存中的数据进行操作,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则由单独的指令来完成。而在CSIC中,CPU是可以直接对内存进行操作的,这也是一个比较特别的地方

3) 更多的寄存器——和CISC 相比,基于RISC的处理器有更多的通用寄存器可以使用,且每个寄存器都可以进行数据存储或者寻址

作为RISC 领域最成功的处理器,ARM自然也遵从上面的特点。下面我们从技术、市场等不同角度对ARM与X86进行一下比较:

一、寄存器比较

32位的X86处理器所含有的寄存器有:

4个数据寄存器(EAX、EBX、ECX和EDX)

2个变址和指针寄存器(ESI和EDI)

2个指针寄存器(ESP和EBP)

6个段寄存器(ES、CS、SS、DS、FS和GS)

1个指令指针寄存器(EIP)

1个标志寄存器(EFlags)

ARM微处理器共有37个32位寄存器,其中31个通用寄存器,6个状态寄存器。但这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于处理器的工作状态及具体运行模式。但在任何时候,通用寄存器R14——R0、程序计数器PC、一个或两个状态寄存器都是可访问的。usr模式下体系结构如下:

x86系统和linux系统,ARM与X86的比较相关推荐

  1. linux执行class文件_「大数据干货」Windows系统和Linux系统中打jar包与导入语句剖析...

    Jar包是Java中的压缩包格式,同Zip格式一样,用来对.class文件统一管理,如下是在Windows系统和Linux系统中不同的打包和执行.class程序的过程. windows: Linux: ...

  2. Android 系统(68)---使用Xshell在Windows系统和Linux系统之间进行文件传输

    使用Xshell在Windows系统和Linux系统之间进行文件传输 Windows系统在安装虚拟机centos系统之后,如何进行两者之间的文件传输和互操作,或者如何在Windows端使用Xshell ...

  3. U盘/光盘制作windows系统和linux系统

    U盘/光盘制作windows系统和linux系统 一 所需材料 1. UltraISO破解版(后附下载地址) 2. 相应的系统映象文件ISO,不同版本不一样,有自己需求的可以选择不一样,一般Windo ...

  4. CrossOver Mac2022虚拟机如何安装win10系统和linux系统

    虚拟机怎么安装win10系统 虚拟机怎么安装linux系统? Win10系统自2015年正式发布至今已有6年的时间,经历过数次更新,同时在这期间,许多开发的应用都基于该系统,兼容性.稳定性都较好.Li ...

  5. linux查看Windows的ip命令,在windows系统和linux系统中查询IP地址命令的不同

    在linux和windows系统上查询IP地址的命令是不一样的. 在linux中的命令行模式下,输入ifconfig即可查询到IP.而在windows系统下要查询IP地址需要先打开dos命令行,然后输 ...

  6. android程序移动到Linux,Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输...

    本文将带你了解Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输,希望本文对大家学Android有所帮助. 使用Xshell在Wi ...

  7. 深入理解Android系统和Linux系统的关系

    深入理解Android系统和Linux系统的关系 参考链接: 1.理解android和linux内核的关系_keepdoingit的专栏-CSDN博客_android和linux内核 2.Androi ...

  8. 认识Linux系统和Linux系统的简单安装教程

    目录 Linux的发展历史: 如何安装linux操作系统(有以下的三种方法): typora:写日记(Markdown编辑模式) xftp:传输文件 xshell:Windows连接Linux主机 v ...

  9. Nginx在Windows系统和Linux系统下的重启

    一.Windows系统下重启nginx 1.杀掉nginx进程 tskill nginx echo 已终止所有ginx进程 2.启动nginx cd f:\nginx-1.0.5  nginx.exe ...

最新文章

  1. 视频+课件| PointDSC:基于特征匹配的点云配准方法(CVPR2021)
  2. python练习小例子(二)
  3. mysql倍增表的内容_MySQL入门(7)——表数据的增、删、改
  4. MAT分析OOM问题
  5. nginx location 正则表达式匹配多个地址_就是要让你搞懂Nginx,这篇就够了!
  6. MetaMask以太坊钱包插件
  7. js技术要点---document.write()方法在IE浏览器和火狐浏览器下面的兼容性问题
  8. 【最大连接数】Linux的文件最大连接数
  9. 2005年1月-2008年10月雅思A类(学术类)作文 TASK 2 考题汇总(10月4日更新)
  10. Python 对象的绑定方法
  11. error: ‘VPX_IMG_FMT_RGB32’ undeclared (first use in this function); did you mean ‘VPX_IMG_FMT_NV12’?
  12. Linux php5 curl 扩展
  13. CMD下将ts视频合并和存储为MP4文件
  14. python qt5开发实例_python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
  15. python培训班靠谱吗-python编程培训 python培训靠谱吗
  16. 人工智能产品经理知识体系和学习计划
  17. 十年老程序员开始新事业
  18. 文字+图片的混编(富文本)
  19. 微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求
  20. 计算机上的波特率标准,电子信号术语-波特率9600计算单位是波特/每秒(B/s)

热门文章

  1. 如何做MySQL的星型结构_MySQL Sakila示例数据库的星型模型
  2. 冗余-安全设计的基石
  3. 【时光纪念】春风十里,不如你
  4. 互联网企业风生水起 四大商业模式彰显生机
  5. Symbol、Map、Set
  6. 电脑只有飞行模式,没有WiFi(多种有效解决方式)
  7. iphone浏览器服务器已停止响应,为什么我的网页无法在Iphone浏览器中断行?
  8. 一年级前一学期计算机应用题,2011-2012学年第一学期〈一年级计算机应用基础〉期中考试试卷...
  9. TypeError: undefined is not an object (evaluating '_react.default.defaultProps.object') - RN
  10. Excel表的相关操作(笔记)