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 |