一个关于return局部变量的有关问题

一个关于return局部变量的问题
有这么一个简单的程序:
#include<iostream>

using namespace std;

int func()
{
  int a = 1;
  return a;
}

int main()
{
  int Val;
  Val = func();
  return 0;
}

请教各位牛人,当一个函数返回局部变量的时候,函数调用一旦结束局部变量就会被销毁,上面的程序中=号操作是从哪取值赋给Val的呢?也就是说return如果是对返回值a进行复制,它会把a的值复制后存储在哪呢?然后=号操作又是如何知道从哪取值赋给Val?

------解决方案--------------------
楼主看下汇编代码 看看函数调用过程
------解决方案--------------------
返回局部变量的拷贝 然后局部变量销毁 这个拷贝可以是在寄存器中可以是在内存中这个和实现有关
------解决方案--------------------
就LZ的代码,a放在了EAX。

------解决方案--------------------
引用:
就LZ的代码,a放在了EAX。

如9楼所说,一般情况函数的返回值放在%eax寄存器中由函数调用者去读,看看汇编的东西就明白了
------解决方案--------------------
alt+8  自己反汇编看下。返回值 绝大部分都是放在EAX寄存器中
------解决方案--------------------
引用:
楼主看下汇编代码 看看函数调用过程

引用:
就LZ的代码,a放在了EAX。

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!