ARM 64指令小记

Posted FarmGuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM 64指令小记相关的知识,希望对你有一定的参考价值。

1 TEST

属于逻辑运算指令,做与操作
如果与运算结果为0那么Z标志位为1,反之为0
Test用来测试一个位,例如寄存器
test eax, 100b; b后缀意为二进制
jnz **; 如果eax右数第三个位为1,jnz将会跳转

2 CMP

属于算术运算指令,做减法,但与SUB指令不同的是
SUB指令执行过以后,原来寄存器中的被减数丢了,被换成了减法的结果,CMP指令执行过以后,被减数、减数都保持原样不变。
CMP指令影响状态寄存器CPSR,ARM64下,该寄存器为32位,高4位N、Z、C、V均为条件码标志位。
当比较结果为0时,即相等,Z位置1。
arm下的条件跳转
表达式 英文 中文
bl.eq equal 等于
bl.ne not equal 不等于
bl.gt greater than 大于
bl.ge greater equal 大于等于
bl.lt less than 小于
bl.le less equal 小于等于

x86下的跳转
je equal 等于
jne not equal 不等于
jg greater 大于
jge greater equal 大于等于
jl less 小于
jle less equal 小于等于

call 为x86的跳转指令

以上是关于ARM 64指令小记的主要内容,如果未能解决你的问题,请参考以下文章

ARM 64指令小记

汇编语言常用指令

大数减法 模板

小记录arm64下的原子加

高精度减法?!

华为OD机试 - N进制减法(JS)