首页 理论教育 未使用的指令空间分析

未使用的指令空间分析

时间:2023-11-23 理论教育 版权反馈
【摘要】:图3.10控制指令扩展空间未使用的load/store 指令这些是由SWAP 指令、load/store 半字和有符号字节指令占据的区域中未使用的编码。未使用指令的行为如果企图执行一条指令,它符合如图3.13 所示的编码,即在未定义的指令空间,则所有当前的ARM 处理器将产生未定义指令的陷阱。图3.13未定义的指令空间如果执行任何未使用的操作码,最新的ARM 处理器产生未定义指令的陷阱,但早先的版本的行为无法预测,因此,应该避免这些指令。

未使用的指令空间分析

前文已经提到的全部232种指令位编码并不是都指定了含义;迄今为止,还未使用的编码可用于未来指令集的扩展。 每个未使用的指令编码都处于使用的编码所留下的特定间隙中,可以从它们所处的位置推断它们未来可能的用途。

(1)未使用的算术指令

这些指令看起来非常像乘法指令。 这将是一种可能的编码,例如,对于整数除法指令就是这样。

图3.9 算术指令扩展空间

(2)未使用的控制指令

这些指令包括转移、交换指令和状态寄存器传送指令,这里的间隙可以用于影响处理器操作模式的其他指令编码。

图3.10 控制指令扩展空间

(3)未使用的load/store 指令

这些是由SWAP 指令、load/store 半字和有符号字节指令占据的区域中未使用的编码。如果将来需要增加数据存取指令,就可以用使用这些指令。

图3.11 数据存取指令扩展空间(www.xing528.com)

(4)未使用的协处理器指令

下列指令格式类似于数据传送指令,可能用来支持所有可能需要增加的协处理器指令。

图3.12 协处理器指令扩展空间

(5)未定义的指令空间

最大未定义指令的区域看起来像字和无符号字节数据存取指令,然而未来对于这一空间的选用完全保持开放。

(6)未使用指令的行为

如果企图执行一条指令,它符合如图3.13 所示的编码,即在未定义的指令空间,则所有当前的ARM 处理器将产生未定义指令的陷阱。

图3.13 未定义的指令空间

如果执行任何未使用的操作码,最新的ARM 处理器产生未定义指令的陷阱,但早先的版本(包括ARM6 和ARM7)的行为无法预测,因此,应该避免这些指令。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈