gpt4 book ai didi

assembly - ARM中的CMP和TST指令有什么区别?

转载 作者:行者123 更新时间:2023-12-05 01:41:39 24 4
gpt4 key购买 nike

我无法理解 ARM 中这两条指令之间的区别。据我了解,

CMP R1, R2

将执行操作 R1-R2,但不存储结果。然后它将在状态寄存器中设置标志,例如 N(负数,如果 R1

我不明白 TST 的不同之处。在我的笔记中它说 TST 不会改变其操作数的值..但我认为 CMP 也没有。这两个指令有何不同?

怎么样

CMP R1, R2

不同于

TST R1, R2

?在此先感谢您的帮助!

最佳答案

TST R1, R2 计算 R1R2 的按位与,然后丢弃结果,同时 CMP R1, R2 将两者相减。 TST 在 ARM 上主要用于查明给定位是否在数字中设置。例如,要检查 R1 是否为奇数,您可以这样做:

TST R1, #1    @ is R1 odd?

如果 R1 是奇数,这会将 Z 标志设置为 0。

关于assembly - ARM中的CMP和TST指令有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com