sub¶
sub A, #K¶
指令格式¶
sub A, #K
影响标志¶
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_A = A + TEMP + 1; C = C_A >> 8; A = C_A & 0xff; OV = C ^ SC; Z = A == 0 ? 1 : 0; |
范例¶
1 2 3 4 | //0x68 - 0x4C //C = 0, AC = 0, Z = 1, OV = 0 mov A, #0x68 //A = 0x68 sub A, #0x4C //A = 0x1C, C = 1, AC = 0, Z = 0, OV = 0 |
sub A, R¶
指令格式¶
sub A, R
影响标志¶
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_A = A + TEMP + 1; C = C_A >> 8; A = C_A & 0xff; OV = C ^ SC; Z = A == 0 ? 1 : 0; |
范例¶
1 2 3 4 5 6 | //0x7B - 0xF3 //C = 0, AC = 1, Z = 1, OV = 0 mov A, #0xF3 //A = 0xF3 mov 0xCB, A //[0xCB] = 0xF3 mov A, #0x7B //A = 0x7B sub A, 0xCB //A = 0x88, C = 0, AC = 1, Z = 0, OV = 1 |