1 unsigned char a, b; 2 baz(void)3void baz (void) 4 { 5 if (b & 0x08) 6 { 7 int g = 0; 8 int c = (b & 0x01); 9 int d = a - g - c; 10 int e = (a & 0x0f) - (g & 0x0f); 11 int f = (a & 0xf0) - (g & 0xf0); 12 int h = (a & 0x0f) - (g & 0x0f); 13 14 if ((a ^ g) & (a ^ d) & 0x80) b |= 0x40; 15 if ((d & 0xff00) == 0) b |= 0x01; 16 if (!((a - h - c) & 0xff)) b |= 0x02; 17 if ((a - g - c) & 0x80) b |= 0x80; 18 a = (e & 0x0f) | (f & 0xf0); 19 } 20 } 21