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

rsub


rsub R, A

指令格式

rsub R, A

影响标志

C AC Z OV

伪代码描述

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

指令描述

寄存器R和累加器A反向减法,结果存储到寄存器R;

注意

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

范例

1
2
3
4
5
6
//0x4D - 0xAD
//C = 0, AC = 1, Z = 0, OV = 1
mov     A, #0xAD    //A = 0xAD
mov     0xF5, A     //[0xF5] = 0xAD
mov     A, #0x4D    //A = 0x4D
rsub    0xF5, A     //[0xF5] = 0xA0, C = 0, AC = 1, Z = 0, OV = 1