On some architectures the program counter (PC or IP) can be manipulated just like a general register (for example the DEC PDP 11, one of the first 16-bit machines -- yonks old!!; also the IBM mainframe I think? with BAL and BALR), but most instruction sets treat the PC as a special-purpose register and only provide Jump/Branch/Call/Return, because careless fiddling with the PC can send the program off into crash-mode :-( MOV PC,EAX can be simulated with JMP [EAX] or whatever, or by pushing the new address onto the stack and doing a RET (you can also load the PSW at the same time by doing an IRET)
One nice thing about the PDP-11 was you could auto-increment/auto-decrement the PC for fetching parameters inline, or trashing the whole of memory by doing MOV (PC)--, (PC)-- which copied itself thru the whole of memory *backwards* until it fell off at location $0000 hehehe...
-------
Best before date on end of packet