Yes, it's true that a negative number has an MSB set, if one wishes to represent it as a two's complement. But, 10000110b is actually -122dec, not -6. Just setting the MSB of an unsigned int doesn't make it a negative number. you must take the two's complement. So, -6dec is actually 1111 1010b. If 10000110b is unsigned, it's 256+4+2=262dec not 312dec. When one executes a ADDC or a SUBB, the number is treated as a signed integer (pretty sure). But, if one executes a memory operation where the number in the regeister is to be an address, the number is assumed unsigned.
Let me correct myself, 10000110b is 134d, not 262. 1(128+4+2). That's right. The range of an unsigned int is (2^n) -1 where n is the number of bits. So, an unsigned, 8-bit integer range is 0 to (2^8)-1 = 255. A signed integer (ie: if we allow for 2's complement) has range -(2^n)/2 to +((2^n)/2)-1. So, an 8-bit 2's complement number has range -128 to +127. The 8052/8052 are 8-bit CPUs, so if you wish to operate on longer integers, 16, 32, etc. you'll have to write the assembly code to operate across multiple registers/memory locations. That means keeping track of the carry/borrow flags, etc. That's why the CPU registers keep getting wider and wider over time.
Actually, that's not what I said. As an unsigned int, 10000110b is 134d. But as a 2's complement, it's -122. One cannot represent +134 as a signed integer (ie: via 2's complement) as it's out of range. Again, just because the MSB is set, doesn't make the number negative. Let me suggest this (non authoritative) good summary of two's complement arithmetic: go to Wikipedia and search "Two's Complement". There are several good examples there and a pretty good explanation.
Data is both signed and unsigned depending on your interpretation and use of the data and use of status flags. C flag shows carry out of bit 7; OV flag show overflow into the sign bit. OV is used to detect errors in signed integer operations. C is used to detect errors in unsigned integer operations.
Remember that A is an 8-bit register, it can only store a value between 0 and 255 (unsigned) or between -128 to 127 (signed). Now A is 134 (unsigned) and A also is -122 (signed). It means that it depends on how you look A, whether unsigned or signed. But A will never be 312.
OK, I will try to speak simply too. The storage of signed and unsigned is a bit-pattern. That is, there is no distinction while the number sits in the register. The distinction happens when the register is modified by some arithmetic operation. For example, 124d + 10d = 134d. This sets the overflow flag (OV) but not the carry flag (C). If you are wanting to use unsigned int then the operation is OK and you ignore the overflow flag. Another example, -6d + 10d = 4d. This sets the carry flag, but not the overflow flag. This discussion is typical of microprocessors for 8 bit instructions.