区别有:web
64位支持一些形式的以PC相关的寻址,而32位只有在jmp的时候才会用到这种寻址方式。数组
mov指令和push pop扩展了movq系列的mov和pushq以及popq用来操做quad word。svg
注意:movabsq不是32位的扩展,是纯新增的指令。用来将一个64位的字面值直接存到一个64位寄存器中。由于movq只能将32位的值存入,因此新增了这样一条指令。函数
一些寄存器被设计成为被调用者-存储的寄存器。这些必须在须要改变他们值的时候存储他们而且以后恢复他们。设计
不少状况下再也不须要栈帧,好比在没有调用别的函数,且寄存器足以存储参数,那么就只须要存储返回地址便可。
须要栈帧的状况:指针
可是如今的栈帧常常是固定大小的,在函数调用的最开始就被设定,在整个调用期间,栈顶指针保持不变,这样就能够经过对其再加上偏移量来对相应的值进行操做,因而EBP就再也不须要做为栈帧指针了。xml
虽然不少时候咱们认为没有“栈帧”,可是每次函数调用都必定有一个返回地址被压栈,咱们能够也认为这一个地址就是一个“栈帧”,由于它也保存了调用者的状态。blog