CSEL
条件选择,返回第一个或第二个输入
语法
CSEL Xd, Xn, Xm, cond
Xd
一般是ARM64的通用寄存器名称,x0-x31。目的寄存器计算后将存入此寄存器。
Xn
一般是ARM64的通用寄存器名称,x0-x31。第一个源操作数,符合条件则将其存入Xd。
Xm
一般是ARM64的通用寄存器名称,x0-x31。第二个源操作数,不符合条件则将其存入Xd。
cond
条件(如下表)
| 条件码(助记) | 描述 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
| CS | 无符号数大于/等于 |
| HS | 无符号数大于/等于 |
| CC | 无符号数小于 |
| LO | 无符号数小于 |
| MI | 负数 |
| PL | 非负数 |
| VS | 上溢出 |
| VC | 没有上溢出 |
| HI | 无符号数大于 |
| LS | 无符号数小于/等于 |
| GE | 大于等于 |
| LT | 小于 |
| GT | 大于 |
| LE | 小于等于 |
| AL | 无条件执行 |
示例
.section .data //定义数据段
.align 3
print_data: //定义字符串
.string "最大数:%d n"
.section .text //定义代码段
.globl main //定义入口函数
main:
mov x3,90
mov x2,100
cmp x2, x3
csel x1,x2,x3,hi
ldr x0, =print_data //加载print_data最后一个数
bl printf
ret
最后
以上就是自信冰棍最近收集整理的关于ARMv8指令的学习记录一 CSEL的全部内容,更多相关ARMv8指令的学习记录一内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复