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
 |