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

subc


subc A, R

指令格式

subc A, R

影响标志

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_A = A + TEMP + C;
C = C_A >> 8;
A = C_A & 0xff;
OV = C ^ SC;
Z = A == 0 ? 1 : 0;

指令描述

累加器A和寄存器R带借位减法,结果存储到累加器A;

注意

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

范例

1
2
3
4
5
6
//0xA1 - 0x5E
//C = 1, AC = 0, Z = 1, OV = 1
mov     A, #0x5E    //A = 0x5E
mov     0xDA, A     //[0xDA] = 0x5E
mov     A, #0xA1    //A = 0xA1
subc    A, 0xDA     //A = 0x43, C = 1, AC = 0, Z = 0, OV = 1