为什么汇编指令`movq`只能传递表示32位补码立即数?

img


这是来自《CSAPP》原书中关于汇编指令的一段描述,不理解为什么不将movq指令设计成传递64位补码的立即数,而要单独加一条指令movabsq指令来完成这个操作呢。同时movabsq指令又只能将源传递到寄存器?

movq指令的要求嘛,如果一定要问为啥,那得问intel CPU的设计师了