所有ARM操作码都是1字节吗?

所有ARM操作码都是1字节吗?,arm,cpu-architecture,opcode,Arm,Cpu Architecture,Opcode,在x86体系结构中,有一个、两个和三个字节的操作码。手臂呢?例如,当我反汇编二进制文件时,我是否可以始终将第一个字节作为操作码?ARM指令实际上没有“操作码”的概念。我不太了解x86指令集,但您所描述的听起来像6502机器代码,其中一些字节标识要执行的指令,其他字节指定指令使用的数据 全副武装 指令有四个字节长。指令使用的操作数包含在这四个字节中。ARM指令实际上没有“操作码”的概念。我不太了解x86指令集,但您所描述的听起来像6502机器代码,其中一些字节标识要执行的指令,其他字节指定指令使用

在x86体系结构中,有一个、两个和三个字节的操作码。手臂呢?例如,当我反汇编二进制文件时,我是否可以始终将第一个字节作为操作码?

ARM指令实际上没有“操作码”的概念。我不太了解x86指令集,但您所描述的听起来像6502机器代码,其中一些字节标识要执行的指令,其他字节指定指令使用的数据

全副武装
指令有四个字节长。指令使用的操作数包含在这四个字节中。

ARM指令实际上没有“操作码”的概念。我不太了解x86指令集,但您所描述的听起来像6502机器代码,其中一些字节标识要执行的指令,其他字节指定指令使用的数据

全副武装
指令有四个字节长。指令使用的操作数包含在这四个字节中。

否。现在有一些arm指令集。主arm指令集,所有指令均为32位,且指令的解码不隔离到指令中的一个字段。thumb指令集基于16位指令,但答案相同,这取决于解码在不同位置的指令。然后是thumb指令集的thumb2扩展,答案相同。thumb2指令是thumb未定义的指令之一,然后再添加一些位以区分哪个指令

从infocenter.ARM.com获取一本ARM体系结构参考手册,了解所有这些。有两个很好的图表显示了这一切是如何工作的,msbits用于将指令划分为不同的类型,然后根据类型对其余的位进行解码

x86来自8位世界,设计倾向于使用一个内存位置(/access)(当时是一个字节)来处理更常用的指令,然后将一些操作码多路复用到第二个字节。此外,还添加了完整的即时消息。当时还可以,但今天效率很低。x86应该是您学习的最后一个指令集(如果有的话),而不是一个好的指令集的代表,您需要忘却一些东西才能继续前进


wikipedia在wiki页面上有许多指令集,其他的则有直接链接。像arm和mips这样的IP供应商,以及许多芯片供应商,您可以直接到他们的站点获取文档。

没有。现在有一些arm指令集。主arm指令集,所有指令均为32位,且指令的解码不隔离到指令中的一个字段。thumb指令集基于16位指令,但答案相同,这取决于解码在不同位置的指令。然后是thumb指令集的thumb2扩展,答案相同。thumb2指令是thumb未定义的指令之一,然后再添加一些位以区分哪个指令

从infocenter.ARM.com获取一本ARM体系结构参考手册,了解所有这些。有两个很好的图表显示了这一切是如何工作的,msbits用于将指令划分为不同的类型,然后根据类型对其余的位进行解码

x86来自8位世界,设计倾向于使用一个内存位置(/access)(当时是一个字节)来处理更常用的指令,然后将一些操作码多路复用到第二个字节。此外,还添加了完整的即时消息。当时还可以,但今天效率很低。x86应该是您学习的最后一个指令集(如果有的话),而不是一个好的指令集的代表,您需要忘却一些东西才能继续前进

wikipedia在wiki页面上有许多指令集,其他的则有直接链接。像arm和mips这样的IP供应商,以及许多芯片供应商,您可以直接访问他们的站点并获取文档