snz¶
snz R¶
指令格式¶
snz R
影响标志¶
无
伪代码描述¶
1 2 3 | if(R == 0){ //snz后的一条操作指令 } |
指令描述¶
判断寄存器R,如果不为0则跳过下一条指令;
范例¶
1 2 3 4 5 6 7 8 9 | //sum of 1 ~ A cseg sum_A: mov R0, A //R0 = A clr A //A = 0 add A, R0 //A = A + R0 dec R0 //R0 = R0 - 1 snz R0 //if R0 != 0 then skip next instruction end ret jmp sum_A + 2 |
snz A, R¶
指令格式¶
snz A, R
影响标志¶
无
伪代码描述¶
1 2 3 4 | A = R; if(R == 0){ //snz后的一条操作指令 } |
指令描述¶
将寄存器R复制到累加器A,判断累加器A,如果不为0则跳过下一条指令;
范例¶
1 2 3 4 5 6 7 8 | //sum of 1 ~ A cseg sum_A: clr R0 //R0 = 0 add R0, A //R0 = R0 + A dec R0 //R0 = R0 - 1 snz A, R0 //A = R0; if R0 == 0 then skip next instruction end ret jmp sum_A + 1 |