大佬教程收集整理的这篇文章主要介绍了c – __asm {};返回eax的值?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
视觉工作室
要在C程序中获得结果,应将返回值放在汇编代码中的eax中,然后从函数返回.调用者将接收eax的内容作为返回值.
Visual Studio 2015 documentation:
int power2( int num,int power ) { __asm { mov eax,num ; Get first argument mov ecx,power ; Get second argument shl eax,cl ; EAX = EAX * ( 2 to the power of CL ) } // Return with result in EAX }
GCC
GCC inline assembly HOWTO不包含类似的示例.这可能意味着您不能像在Visual studio中那样使用隐式返回.但是,HOWTO显示您可以将结果存储到程序集块内的C变量,并在程序集块结束后返回该变量的值.
static inline char * strcpy(char * dest,const char *srC) { int d0,d1,d2; __asm__ __volatile__( "1:\tlodsb\n\t" "stosb\n\t" "TESTB %%al,%%al\n\t" "jne 1b" : "=&S" (d0),"=&d" (d1),"=&a" (d2) : "0" (srC),"1" (dest) : "memory"); return dest; }
以上是大佬教程为你收集整理的c – __asm {};返回eax的值?全部内容,希望文章能够帮你解决c – __asm {};返回eax的值?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。