返回值超過32位時的存儲

#include<stdio.h>

__int64 Function()
{
	__int64 x = 0x1234567890;

	return x;
	/*
	使用兩個32位的寄存器返回64位的值
	mov  eax,dword ptr [x]
	mov  edx,dword ptr [ebp-8]
	*/
}


int main()
{
	__int64 x = 0;
	x= Function();
	  /*
	 __int64 x = 0;
012B173E  xorps       xmm0,xmm0  
012B1741  movlpd      qword ptr [x],xmm0  
		x= Function();
012B1746  call        Function (012B102Dh)  
012B174B  mov         dword ptr [x],eax  
012B174E  mov         dword ptr [ebp-8],edx  
	 */
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章