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

dsz


dsz R

指令格式

dsz R

影响标志

伪指令

1
2
R = R - 1
if R == 0 then skip end

指令描述

将寄存器R减1,结果存回到寄存器R,同时判断结果,结果为0则跳过下一条指令;

范例

1
2
3
4
5
6
7
//计算1 ~ A的和
        cseg
sum_A:  clr     R0      //R0 = 0
        add     R0, A   //R0 = R0 + A
        dsz     A       //A = A - 1; if A == 0 then skip next instruction end
        jmp     sum_A + 1
        ret             //return

dsz A, R

指令格式

dsz A, R

影响标志

伪指令

1
2
A = R - 1
if A == 0 then skip end

指令描述

将寄存器R减1,结果存储到累加器A,同时判断结果,如果为0则跳过下一条指令;

范例

1
2
3
4
5
6
7
8
9
//计算1 ~ A的和
        cseg
sum_R0: clr     A       //A = 0
        inc     R0      //R0 = R0 + 1
        dec     R0      //R0 = R0 - 1
        add     A, R0   //A = A + R0
        dsz     A, R0   //A = R0 - 1; if A == 0 then skip next instruction end
        jmp     sum_R0 + 2
        ret             //return