I have a question about the processor architecture of 32 bit and 64 bit systems.
When you work with a 64 bit system, I suppose it means you have a 64 bit wide addressbus of byte-addressable memory and 64 bit wide registers in the CPU itself.
One of the registers is an instruction register that holds the current instruction that is executed. This register is also 64 bit wide.
My questions are
How is it possible that an instruction of 64 bit wide can contain a reference to an address of 64 bit to load it into a register of the CPU? The instruction register is only 64 bit wide so there will be no place for an opcode anymore?
Also, when the memory address refers to a byte of memory (maximum integer of 2^8 - 1), how is it possible to express 64 bit integers then?
And what does a ALU do when he adds up 2 64bit integers with a result that can't be expressed in a 64 bit integer?