首页 > 编程知识 正文

secp256k1,arm跳转指令

时间:2023-05-05 01:38:47 阅读:57711 作者:2807

条件操作码是pstate处理器(在与a32对应之前为CPSR )状态下有4个条件操作吗? NCZV

条件标志位描述n负数标志(如果上次运算结果为负值,则N=1,否则N=0) z上次的运算结果为0C加法、无符号溢出、C=1、其他有不变v符号的溢出通常加法指令add 1)使用寄存器的加法运算;

2 .使用即时数的加法

3 .通过换档操作进行加法运算

adds指令影响条件标志位c subs指令,影响条件标志位c adc指令的进位加法指令,

ADC Xd,Xn,Xm //Xd=Xn Xm c SBC指令SBC Xd,Xn,Xm //Xd=Xn-Xm-1 C CMP指令内部用subs指令实现,影响c标志位

假设cmp x1,x2//x1not(x2 ) x1=x2,C=1

x1x2,C=0

练习1 :测试c条件标志位

. global my _ add _ test my _ add _ test 3360 movx 0,#0 ldr x1,=0xfffffffffffmovx2,#3 //test adds,influencecflance xzr

练习2 :合并使用CMP和sbc

/* * when arg1=arg2,retuRn 0 * when arg1 arg2,return0xfffffffffff*SBCrd,rn,RM-- rd=rn-RM-1c */. global my _ return x0cmp x0,x1sbc x0 xzr //0-0-1 Cret移位指令描述lsl逻辑左移命令低位零补充lsr逻辑右移命令最高位,始终描述与零补充asr运算右移左补充位符号一致的ror循环右移最高位

/* * andsinfluencezflaginpstate *.global my _ ands _ test my _ ands _ test 3360 movx 1、#0x3mov x2、#0ands x3、x1、x220

位或/或异或ORR Xd,Xn --Xd=Xd | XnEOR Xd,Xn --Xd=Xd ^ Xn异或三个特征。 (1) 0任意数=任意数

)2) 1异或任意数=任意数的倒数

)3)任意数量的异或)自己=0;

异或的一些技巧使用(1)反转一些位。

0x0xffff、FFFF ^0x 15//5反转(2)交换2个个数

在a=a^bb=b^aa=a^b(3)组件中设置0

eor x0,x0(4)判断两个数是否相等

每return () a^b )==0)位清除bic:位清除指令

mov x0,0 xabcdbicx 0,x0,#0xf位段操作指令填充位bfi提取位bfx BFI Xd,Xn,#LSB,#WIDTH //get [0,width]fromxn 指定lsb width的#WIDTH //get [lab,LSBwidth]fromxn,to [x,width ]/ubfx 3360文件'0' inotherbits//sbuf :文件

. global my _ bit filed _ test my _ bit filed _ test : movx 0,0 xabcdbicx 0,x0,0 xfl DRX 6,=0x 346 movx 1,0 bfix 1,x6,# ubfx x8、x7、#20、#4//support AES? ubfx x9、x7、#4、#4ret的执行结果如下。

零计数指令clz计算最高位1之前的0个数

movx 1,0xf clzx 2,x1 //x2为60

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。