0

我正在尝试实现类似于以下 C 代码的内容:

if(x<0)
{
    <code A>
}
else if(x == 0)
{
    <code B>
}
else        //x > 0
{
    <code C>
}
postIf code

所以我想知道是否可以通过在 ARMv8、AArch64 指令集中执行以下操作来做到这一点:

    cmp x_r, 0     //x_r macro for x19
    b.lt neg
    b.gt pos

    <code B>
    b postIf

neg:
    <code A>
    b postIf
pos:
    <code C>
postIf:
    <postIf Code>

这行得通吗?检查条件分支后标志是否保持设置(或不设置)?

4

1 回答 1

1

是的,那应该可以正常工作。分支指令不修改标志。

于 2021-06-14T00:15:44.720 回答