I suppose you're looking at Shikatsu's example?
http://forum.nasm.us/index.php?topic=1335.0In any case, we probably want a 16-bit register so we can add it to another 16-bit register, but we only want the value of a single digit. The comment you show isn't quite correct - only four bits remain in the result, not eight.
There's a "logical" or "boolean" and, in which the result is "true" (non-zero) if both operands are "true" - "false" (zero) is either or both are "false". The "and" instruction works on a bitwise basis - a bit in the result is 1 if the corresponding bits in both operands are 1, the bit is 0 if either or both bits are zero. In this case, the result has a numeric value, not just "true" or "false".
There are a number of ways to convert byte (or larger value) to a string... and the number can be represented as decimal or hex... or other. "Just call printf" is pretty simple - the code to printf isn't simple, but someone else wrote it!
Maybe if you tell us more about what you're trying to do, or exactly which code you're looking at, we can be more help. Wait'll you see floating point!
Best,
Frank