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

sne


sne A, #K

指令格式

sne A, #K

影响标志

C Z

伪代码描述

1
2
3
4
5
6
7
8
TEMP = (~K) & 0xff
C_T = A + TEMP + 1;
C = C_T >> 8;
T = C_T & 0xff;
Z = T == 0 ? 1 : 0;
if(Z == 0){
    //sne之后的一条操作指令
}

指令描述

比较累加器A和立即数K,如果不相等则跳过下一条指令;

范例

1
2
3
4
5
//C = 0, Z = 0
mov A, #0x01    //A = 0x01
se  A, #0x01    //C = 1, Z = 1, 将跳过下一条指令
inc A           //被跳过
inc A           //A = 0x02

sne A, R

指令格式

sne A, R

影响标志

C Z

伪代码描述

1
2
3
4
5
6
7
8
TEMP = (~R) & 0xff
C_T = A + TEMP + 1;
C = C_T >> 8;
T = C_T & 0xff;
Z = T == 0 ? 1 : 0;
if(Z == 0){
    //sne之后的一条操作指令
}

指令描述

比较累加器A和寄存器R,如果不相等则跳过下一条指令;

范例

1
2
3
4
5
6
7
//C = 0, Z = 0
mov A, #0x01    //A = 0x01
mov 0x80, A     //[0x80] = 0x01
clr A           //A = 0x00
se  A, R        //C = 0, Z = 0, 不会跳过下一条指令
inc A           //A = 0x01
inc A           //A = 0x02