ARM 指令的分类与格式
扫描二维码
随时随地手机看文章
ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。
ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类,具体的指令及功能如表3-1所示(表中指令为基本ARM指令,不包括派生的ARM指令)。
当处理器工作在ARM状态时,几乎所有的指令均根据 CPSR 中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。
每一条 ARM 指令包含 4 位的条件码,位于指令的最高 4 位 [31:28] 。条件码共有 16 种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令 B 可以加上后缀 EQ 变为 BEQ 表示 “ 相等则跳转 ” ,即当 CPSR 中的 Z 标志置位时发生跳转。
在 16 种条件标志码中,只有 15 种可以使用,如表 3-2 所示,第 16 种( 1111 )为系统保留,暂时不能使用。