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

rsubc


rsubc R, A

指令格式

rsubc R, A

影响标志

C AC Z OV

伪代码描述

1
2
3
4
5
6
7
8
TEMP = (~K) & 0xff
AC = ((A & 0x0f) + (TEMP & 0x0f) + C) >> 4;
SC = ((A & 0x7f) + (TEMP & 0x7f) + C) >> 7;
C_R = A + TEMP + C;
C = C_R >> 8;
R = C_R & 0xff;
OV = C ^ SC;
Z = R == 0 ? 1 : 0;

指令描述

带进位/借位标志C,累加器A的内容减寄存器R的内容,结果存储到寄存器R中。

注意

按照伪代码描述的算法,减法C标志在有借位时为0,无借位时为1

范例

1
2
3
4
5
6
//0xB6 - 0x74
//C = 1, AC = 0, Z = 0, OV = 1
mov     A, #0x74    //A = 0x74
mov     0xE2, A     //[0xE2] = 0x74
mov     A, #0xB6    //A = 0xB6
rsubc   0xE2, A     //[0xE2] = 0x42, C = 1, AC = 1, Z = 0, OV = 1