You can use 8 bits to store anything - numbers, bit flags, characters. It's up to you to make sure your presentation is what you need.
The OP talks about integer variables which represent numbers. So, we need to talk about representing numbers. The goal is to make sure that our computer programming preserves the abstract mathematical numbers.
8-bit signed integers represent numbers from -128 to 127. If you subtract two arbitrary variables of this kind, the result can be anything from -256 to 254. To store all possible number in a variable, you need at least 9-bit signed variable.
8-bit unsigned integers represent numbers from 0 to 255. If you subtract two arbitrary variables of this kind, the result can be anything from -255 to 255. To store all possible number in a variable, you need at least 9-bit signed variable.
If first is unsigned and second signed, the range is -128 to 382. Now you need 10-bit signed variable.
If first is signed and second unsigned, the range is -383 to 127. You need a 10-bit signed variable again.
See that. Regardless of wether the original variables were signed or unsigned, the result requires a signed variable.