算术逻辑指令
TEST 位测试指令
TEQ 相等测试指令
ADD 加法指令
ADD指令将<Shift_operand>表示的数据与寄存器<Rn>中的值相加,并把
结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。
语法格式:
ADD {<cond>} {S} <Rd>, <Rn>, <shifter_operand>
其中:<cond>为指令执行的条件码。当<cond>忽略时指令为无条件执行。
S 决定指令的操作是否影响CPSR中条件标志位的值。
<RD>寄存器为目标寄存器。
<Rn>寄存器为第一个源操作数所在的寄存器。
<shifter_operand>为第二个操作数
示例:
ADD Rx, Rx, #1 ;Rx=Rx+1
ADD Rd, Rx, LSL #n ;Rx=Rx+Rx*(2*n)=Rx*(2*n+1) (?)
ADD Rs, PC, #offset ;生成基于PC的跳转指针
SUB 减法指令
SUB指令从寄存器<Rn>中减去<Shifter_operand>表示的数值,并把结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。
语法格式:
SUB {<cond>} {s} <Rd>, <Rn>, <Shifer_operand>
指令的使用
SUB Rx, Rx, #1 ;Rx=Rx-1
RSB 逆向减法指令
ADC 带位加法指令
SBC 带位减法指令
RSC 带位逆向减法指令
AND 逻辑与操作指令
指令的使用
可用于提取寄存器中某些位的值。
BIC 位清除指令
BIC指令将<shifter_operand>表示的数值与寄存器<Rn>的值的反码按位做逻辑与操作,并把结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。
EOR 逻辑异或操作指令
指令的使用
可用于将寄存器中某些位的值取反。--将某一位与0做逻辑异或操作,该位值不变:将某一位与1做逻辑异或操作,该位值将被求反。
ORR 逻辑或指令
指令的使用
可用于将寄存器中某些位的值设置为1。
MUL 32位乘法指令
指令对状态寄存器的影响
if S==1 and Rd==R15 then
CPSR=SPSR
else if S==1 then
N flag=Rd[31]
Z flag=if Rd==0 then 1 else 0
C flag=shifter_carry_out
V flag=unaffected
比较分支指令
数据总线与地址总线
内存访问指令
指令位图
识别机器指令
写的不是很全,以后再补吧。