ARM指令集和X86指令集有什么不一样?

inurlcn 2014-01-24 03:25:22
有可能同样的汇编指令,但是机器码不一样吗?
...全文
1792 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
horris 2014-02-08
  • 打赏
  • 举报
回复
引用 7 楼 xinzha 的回复:
cpu对于机器码的每一个bit的解释都不同,arm是类risc中比较成功的一种,指令集简单,所有指令都是32位或者16位的,而cisc的x86不等长,所以指令预测都比risc要难做一些。 寻址方式也不一样,这个就得看各个架构的reference manual了。这方面一个比较大的区别是x86使用了分段(实际上在linux中,绕过了分段模式,但是cpu确实是分段的),而arm是分页。 至于是否冯诺依曼或者哈佛,这个没有太多争论的必要,目前为止我所接触过的纯粹哈佛结构的只有51系列的单片机。在arm9以上的带独立icache/dcache的cpu中,从cache的角度来看确实是哈佛结构的,因为icache和dcache和外部总线的接口是截然分离的,而从实际的外部总线系统设计来看,你依然可以认为是冯诺依曼的,因为代码和数据共用了外部的amba总线,并且都在一个地址空间中,并没有真正分离。这样的设计对于当前的操作系统来说是最合理,最方便的。
看来遇到明白人了
猪头三小队长 2014-02-08
  • 打赏
  • 举报
回复
cpu对于机器码的每一个bit的解释都不同,arm是类risc中比较成功的一种,指令集简单,所有指令都是32位或者16位的,而cisc的x86不等长,所以指令预测都比risc要难做一些。 寻址方式也不一样,这个就得看各个架构的reference manual了。这方面一个比较大的区别是x86使用了分段(实际上在linux中,绕过了分段模式,但是cpu确实是分段的),而arm是分页。 至于是否冯诺依曼或者哈佛,这个没有太多争论的必要,目前为止我所接触过的纯粹哈佛结构的只有51系列的单片机。在arm9以上的带独立icache/dcache的cpu中,从cache的角度来看确实是哈佛结构的,因为icache和dcache和外部总线的接口是截然分离的,而从实际的外部总线系统设计来看,你依然可以认为是冯诺依曼的,因为代码和数据共用了外部的amba总线,并且都在一个地址空间中,并没有真正分离。这样的设计对于当前的操作系统来说是最合理,最方便的。
threenewbee 2014-02-07
  • 打赏
  • 举报
回复
没有一条指令的机器码一样的。
horris 2014-01-28
  • 打赏
  • 举报
回复
ARM是否哈佛不能肯定,它的指令集是RISC的,X86是CISC的。ARM是个CPU设计规范,并非具体CPU。只要在ARM上做过汇编,如果代码空间和数据空间是分隔的,就知道是哈佛架构
inurlcn 2014-01-26
  • 打赏
  • 举报
回复
引用 3 楼 KenZhang1031 的回复:
ARM和x86属两个不同的CPU结构,一个是哈佛结构,一个是冯诺依曼结构,汇编指令完全不同,机器码也完全不同。
引用 楼主 inurlcn 的回复:
有可能同样的汇编指令,但是机器码不一样吗?
。。。。ARM早就不是冯诺依曼了
Mr. Code 2014-01-24
  • 打赏
  • 举报
回复
ARM和x86属两个不同的CPU结构,一个是哈佛结构,一个是冯诺依曼结构,汇编指令完全不同,机器码也完全不同。
引用 楼主 inurlcn 的回复:
有可能同样的汇编指令,但是机器码不一样吗?
inurlcn 2014-01-24
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
“同样的汇编指令”的说法都勉强吧,最多是“类似功能的指令”,机器码不一样,连助记忆符都不一样;指令的功能涵盖上也有不同。 具体的找来它们的基本指令集,对着看下了。我对 arm 也不熟。
嗯, 搞虚拟机或者虚拟化的人应该很懂
zara 2014-01-24
  • 打赏
  • 举报
回复
“同样的汇编指令”的说法都勉强吧,最多是“类似功能的指令”,机器码不一样,连助记忆符都不一样;指令的功能涵盖上也有不同。
具体的找来它们的基本指令集,对着看下了。我对 arm 也不熟。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧