回 帖 发 新 帖 刷新版面

主题:[讨论]C与汇编混合编程

#include <stdlib.h>
#include <stdio.h>
void far add (int,int)
{
 asm { 
      PUSH DS
      PUSH BP
      MOV  BP,SP
      MOV  AX,[BP+12]
      MOV  DS,AX
      MOV  AX,[BP+8]
      ADD  AX,05H
      MOV  SI,[BP+10]
      MOV  [SI],AX
      POP  AX
      POP  BP
      MOV  DS,AX}
}
void main()
{int a[5];
 int i;
 for(i=0;i<5;i++)
 scanf("%d",&a[i]);
 for(i=0;i<5;i++)
 printf("%d",add(a[i],5));
}
程序编译时老是出现Declaration syntax error的提示
请问是为什么啊?
请高手指教!

回复列表 (共10个回复)

沙发

大括号匹配吗?这么明显的错误............

板凳


呵呵,这是匹配的啊!

3 楼

对。。是匹配。。。这位置。。。

我越来越看不懂这代码了。。。

4 楼

说我是语法错误
我实在是看不出来。
会不会是函数调用的问题啊?

5 楼

关键字应该是_asm或__asm
你用的VS吗?
VS的话应该没其他问题,除了你指令有错
如果是gcc的话,指令不能这么写,它用的是AT&T格式的

6 楼


呵呵,我是用TC编译的!

7 楼

呵呵,TC我还真没试过,真要用就去查下技术手册吧,我学编程的时候TC就用了一个月~~以后再也没碰过了

8 楼


(*^__^*) 嘻嘻……
多谢啊!

9 楼


asm明显不是关键字。
如果使用编译器扩展的话,那么也应该是: __asm__

10 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册