桂林北站到阳朔,中学生网站源码,织梦怎么查看网站点击,贵州省建设网站VS2010 C语言内嵌汇编语言程序 2021年7月28日席锦 在visual studio 2010中C语言使用内联汇编写代码 #xff0c;它的格式有两种#xff0c; 一种是__asm 直接接汇编指令语句#xff0c;比如:__asm int 3 // 软件中断 另一种是加上花括号#xff0c;类似于一个函数… VS2010 C语言内嵌汇编语言程序 2021年7月28日·席锦 在visual studio 2010中C语言使用内联汇编写代码 它的格式有两种 一种是__asm 直接接汇编指令语句比如:__asm int 3 // 软件中断 另一种是加上花括号类似于一个函数比如 __asm { mov eax, 1 ;1到eax mov ebx, 2 ;2到ebx add eax, ebx ;eax 和ebx相加含义为:eaxebx } 使用内联汇编有个好处可以直接使用C/C中的变量 比如 int a; __asm mov a, 2 // 可以使用变量只有一条,含义为:给变量a赋值为2 另外使用内联汇编最需要注意的是数组。比如:int b[2] {1,2} ; 不可以直接 __asm { mov b[0], 1 mov b[1], 2 } 这样是错误的 需要 __asm { mov b[0], 1 mov b[4], 2 } 为什么是4呢因为内联汇编转换后是数组a的地址偏移而不是序号。 下述是在VS2010中编译通过的示例代码 #include stdio.hint main()
{printf(Hello, World!\n);__asm int 3 // 软件中断int a;__asm mov a, 2 // 可以使用变量只有一条,含义为:给变量a赋值为2printf(a%d\n, a);// 需要在调试模式(F5)中查看下述eax、ebx的值__asm {mov eax, 1 ;1到eaxmov ebx, 2 ;2到ebxadd eax, ebx ;eax 和ebx相加含义为:eaxebx}int b[2] {0, 1};__asm{mov b[0], 1mov b[4], 2}printf(bye, World!\n);return 0;
} 运行截图(F5进入调试模式可查看上文中叙述的变量值):