I'd just like to point out that not all hardware breakpoints involve addresses. For example:
The OLPC XO uses an x86 processor called the Geode. It supports a breakpoint that traps based on the opcode. For example, one could set it to trap on arpl instructions.