refactor CPU
add AddressingMode
move addressing code into AddressingMode
refactor