当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

se


se A, #K

指令格式

se 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){
    //se之后的一条操作指令
}

指令描述

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

范例

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

se A, R

指令格式

se 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){
    //se之后的一条操作指令
}

指令描述

比较累加器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
sne A, R        //C = 0, Z = 0, 将会跳过下一条指令
inc A           //A = 0x01
inc A           //A = 0x02