当前文档版本为 v0.1.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

sbz


sbz B

指令格式

sbz B

影响标志

伪指令

1
if B == 0 then skip end

指令描述

如果比特B为0则跳过下一条指令;

范例

1
2
3
4
5
6
7
8
        export  FLAG
        dseg
        bit     FLAG    //其他程序改变其值

        cseg
        sbz     FLAG    //if FLAG == 0 then skip next instruction end
        ...             //do something
        ...

sbz R, p

指令格式

sbz R, p

影响标志

伪指令

1
if R.p == 0 then skip end

指令描述

如果寄存器R的第p位为0则跳过下一条指令;

范例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
/**
 * 测试A中为1的bit的数量是否为偶数:
 * 偶数return 1
 * 奇数return 0
 */
        cseg
f_is_bits_even_A:
        bset    R0, 0   //R0[0] = 1
        snz     A       //if A != 0 then skip next instruction end
        jmp     end
        sbz     A, 0    //if A[0] == 0 then skip next instruction end
        bcpl    R0, 0   //R0[0] = ~R0[0]
        rsh     A       //A = A >> 1
        jmp     f_is_bits_even_A + 1
end:    sbz     R0, 0   //if R0[0] == 0 then skip next instruction end
        ret     #1      //return 1
        ret     #0      //return 0