x86和ARM里的地址空间

一、x86

1.1.x86的地址空间

在 x86 架构的 CPU 里,内存空间和 IO 空间是不一样的,如果需要访问相同的地址时,使用不同的指令区分内存空间或是 IO 空间,如下图所示:使用 MOV 指令,意味着 CPU 寻到的地址是内存空间;使用 IN AL 指令,寻到的地址是 IO 空间。

在这里插入图片描述

1.2.复杂指令集计算机

x86 属于复杂指令集计算机,也叫 CISC(Complex Instruction Set Computing),它所使用的指令比较复杂,例如某些复杂的指令,它会通过“微程序”来实现的。如下图所示,想要计算 a * b,将运算结果存放在变量 a 里面,计算步骤和下面文章的 RISC 指令的四个步骤一样:

  1. 读内存 a
  2. 读内存 b
  3. 计算 a * b
  4. 把结果写入内存 a

但是对于程序员来说,程序员看不见“微程序”,看起来就像使用了一条指令就能够达到目标。

在这里插入图片描述

二、ARM

2.1.ARM的地址空间

在 CPU 的角度上看,内存和其他的外设地址是在同一个地址空间里面,因此它的访问方法是一样的,CPU 只管发送一个地址交给内存控制器,再由内存控制器找到该内存所在的区域。

在这里插入图片描述

2.2.精简指令集计算机

ARM 芯片属于精简指令集计算机,也叫 RISC(Reduced Instruction Set Computing),它所用的指令比较简单:

  • 对内存只有读写指令
  • 对于数据的运算是在 CPU 内部实现
  • 使用 RISC 指令的 CPU 复杂度小一点,易于设计

如下图所示,想要计算 a * b,将运算结果存放在变量 a 里面,在 RISC 指令中要使用 4 条汇编指令:

  1. 读内存 a
  2. 读内存 b
  3. 计算 a * b
  4. 把结果写入内存 a

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值