【摘要】:图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)的行为无法预测,因此,应该避免这些指令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。