ARM汇编有哪些条件码?
时间: 2023-12-13 11:45:18 浏览: 100
ARM汇编中有以下条件码:
- EQ:相等,等于(Equal)
- NE:不相等,不等于(Not Equal)
- CS/HS:带进位的大于等于(Carry Set, Higher or Same)
- CC/LO:不带进位的小于(Carry Clear, Lower)
- MI:负数(Minus)
- PL:正数或零(Plus)
- VS:溢出(Overflow Set)
- VC:未溢出(Overflow Clear)
- HI:无符号数大于(Higher)
- LS:无符号数小于等于(Lower or Same)
- GE:带符号数大于等于(Greater or Equal)
- LT:带符号数小于(Less Than)
- GT:带符号数大于(Greater Than)
- LE:带符号数小于等于(Less or Equal)
- AL:无条件执行(Always)
这些条件码可以用于控制指令的执行,使程序具有更加灵活的流程控制能力。
相关问题
arm汇编中的BX有什么用?
BX是ARM汇编中的一条指令,用于分支到另一个寄存器中存储的地址所指向的代码段。它可以用于实现函数调用、跳转和返回等操作。
BX指令的语法格式如下:
```
BX{cond} Rn
```
其中,cond为可选参数,表示条件码,Rn为分支的目标地址所在寄存器。
举个例子,假设我们有以下的代码:
```
mov r0, #1 // 将1赋值给寄存器r0
mov r1, #2 // 将2赋值给寄存器r1
add r2, r0, r1 // 计算r0 + r1的结果,并将结果存储到r2中
bx lr // 返回到调用者
```
在这个例子中,`bx lr`用于返回到调用者。lr是一个特殊寄存器,它存储了函数返回时的地址。因此,执行`bx lr`指令会将程序控制权返回到调用者,并从调用者存储的地址处继续执行。
arm汇编FMSTAT
FMSTAT是一个ARM汇编指令,用于读取状态标志位并将结果存储到目标寄存器中。
具体语法如下:
```
FMSTAT{<cond>} <Rd>
```
其中,`<cond>`是条件码,可选;`<Rd>`是目标寄存器。
指令执行过程如下:
1. 读取状态标志位的值;
2. 将状态标志位的值存储到目标寄存器中。
注意事项:
1. `FMSTAT`指令只能用于ARMv7M和ARMv7EM架构。
2. `FMSTAT`指令不能改变状态标志位的值。
阅读全文