概述
单步的时候遇到TST总是忘记是什么意思,在这里详细记录一下。
TST W0, #1:
如果W0.bit_1 == 1,则将CPRF寄存器的Zero=0;否则W0.bit_1 == 0,Zero=1。
TST通常会配合B.EQ,CSEL指令一起使用,例如
TST W0, #1 + B.EQ LABEL:如果W0.bit_1 == 0 -> Z == 1 -> EQ -> 跳转到LABEL
TST W0, #1 + B.NE LABLE:如果W0.bit_1 == 1 -> Z == 0 -> NE -> 跳转到LABEL
TST W0, #1 + CSEL W0, W1, W2, EQ:W0.bit_1 == 0 ? W0 = W1 : W0 = W2
TST W0, #1 + CSEL W0, W1, W2, NE:W0.bit_1 == 1 ? W0 = W1 : W0 = W2
需要注意的是,bit_1,也就是第一位。没有第0位。上面的TST,可以同来判断W0的奇偶性。
TBZ W0, #0x80, LABEL:如果W0的第8位是0,跳转到LABEL
TBNZ X0, #0x80, LABEL:如果X0的第8位是1,跳转到LABEL
最后
以上就是欣喜斑马为你收集整理的ARM汇编 常见条件判断对应NZCV标识 以及 TST / TBZ / TBNZ 指令的全部内容,希望文章能够帮你解决ARM汇编 常见条件判断对应NZCV标识 以及 TST / TBZ / TBNZ 指令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复