计算机系统之汇编---IA32处理器数据格式及数据操作
IA32数据格式:
Intel用术语“字”表示16位数据类型,因此,称32位数为“双字”,称64位数为“四字”。
Char*这里指的是所有指针类型,注意:c语言新增加的long long是八字节,但是硬件IA32不支持这个类型。
寄存器(8个32位的寄存器,均以%e开头)
%eax、%ecx、%edx:调用者保存(数据)寄存器,当过程p调用q,q可以覆盖这些寄存器,但是不会改变p中的数据。
%ebx、%esi、%edi:被调用者保存(数据)寄存器,当过场p调用q,q必须在覆盖这些寄存器数据前,要把它们保存到栈,
并在调用结束返回时恢复它们,这些数据p或其他过程需要它们。
%esp、%ebp:有关栈指针的
IA32数据格式:
Intel用术语“字”表示16位数据类型,因此,称32位数为“双字”,称64位数为“四字”。
Char*这里指的是所有指针类型,注意:c语言新增加的long long是八字节,但是硬件IA32不支持这个类型。
寄存器(8个32位的寄存器,均以%e开头)
%eax、%ecx、%edx:调用者保存(数据)寄存器,当过程p调用q,q可以覆盖这些寄存器,但是不会改变p中的数据。
%ebx、%esi、%edi:被调用者保存(数据)寄存器,当过场p调用q,q必须在覆盖这些寄存器数据前,要把它们保存到栈,
并在调用结束返回时恢复它们,这些数据p或其他过程需要它们。
%esp、%ebp:有关栈指针的