文档详情

指令系统一寻址方式及跳转.pdf

发布:2025-03-22约6.94千字共26页下载文档
文本预览下载声明

简介

•ARM微处理器的指令集是加载/型的,

也即指令集仅能处理寄存器中的数据,而

且处理结果都要放回寄存器中,而对系统

器的则需要通过专门的加载/

指令来完成。

•ARM微处理器的指令集可以分为跳转指令、

数据处理指令、程序状态寄存器(PSR)

处理指令、加载/指令、协处理器指令和

异常产生指令六大类。

ARM指令格式

opcode{cond}{S}Rd,Rn{,opcode2}

其中,内的项是必须的,{}内的项是可选的,如opcode是指令助记符,是必须

的,而{cond}为指令执行条件,是可选的,如果不写则使用默认条件AL(无条件执行)。

opcode指令助记符,如LDR,STR,MOV,ADD等

cond执行条件,如EQ,NE

S是否影响CPSR寄存器的值,书写时影响CPSR,否则不影响

Rd目标寄存器

Rn第一个操作数的寄存器

operand2第二个操作数

指令的条件域

•当处理器工作在ARM状态时,几乎所有的指令均根据

CPSR中条件码的状态和指令的条件域有条件的执行。当

指令的执行条件满足时,指令被执行,否则指令被忽略。

•每一条ARM指令包含4位的条件码,位于指令的最高4位

[31:28]。条件码共有16种,每种条件码可用两个字符表示,

这两个字符可以添加在指令助记符的后面和指令同时使用。

例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳

转”,即当CPSR中的Z标志置位时发生跳转。

•在16种条件标志码中,只有15种可以使用,如表3-2所示,

第16种(1111)为系统保留,暂时不能使用。

条件码助记符后缀标志含义

0000EQZ置位相等

0001NEZ不相等

0010CSC置位无符号数大于或等于

0011CCC无符号数小于

0100MIN置位负数

0101PLN正数或零

0110VSV置位溢出

0111VCV未溢出

1000HIC置位Z无符号数大于

1001LSCZ置位无符号数小于或等于

1010GEN等于V带符号数大于或等于

1011LTN不等于V带符号数小于

1100GTZ且(N等于V)带符号数大于

1101LEZ置位或(N不等于V)

显示全部
相似文档