我是靠谱客的博主 欣喜斑马,最近开发中收集的这篇文章主要介绍ARM汇编 常见条件判断对应NZCV标识 以及 TST / TBZ / TBNZ 指令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

单步的时候遇到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 指令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部