在以下C程序中_AX = 1000的含义是什么?

我是C编程语言的初学者,最近我已经开始学习函数了,我已经研究过这个函数使用关键字return来返回一个调用函数的值。例如下面的程序。

int getVal(){
 return 1000;
}

int main(){
int x = getVal();
printf("x = %d",x);
return 0;
}

将打印x = 1000

但我很困惑(在turbo C编译器32位下)为什么以下程序生成的输出为x = 1000。请解释。

int get_val(){
 _AX = 1000;
}

int main(){
int x = get_val();
printf("x = %d",x);
return 0;
}
在大多数x86系统中,EAX(32位)或AX(16位)的特定寄存器(由“ABI”定义的应用程序二进制接口(它描述编译器应如何生成代码))返回“返回值” bit)[不说_AX实际上不是内部的EAX]。

这个编译器显然支持通过命名_AX直接使用“寄存器”。所以通过加载一个值的[E] AX寄存器,我们基本上返回这个值。

这绝对不会在任何其他的编译器,尽管内联汇编器可以实现同样的事情。

http://stackoverflow.com/questions/17721778/what-is-the-meaning-of-ax-1000-in-the-following-c-program

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在以下C程序中_AX = 1000的含义是什么?