c内嵌汇编,如何配置vs2005 进行编译

qmm161 2008-03-07 03:32:48
如题,arm平台,想用汇编优化c,结果不知道怎么配置vs2005来编译?

--Tks
...全文
928 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpuwolf 2008-04-14
  • 打赏
  • 举报
回复
VS2005对于ARM平台是不能用内联汇编的。

对于i386是可以的
qmm161 2008-03-11
  • 打赏
  • 举报
回复
arm 平台,os是mobile
qmm161 2008-03-10
  • 打赏
  • 举报
回复
搜肯定是搜过了,不然也不会到这来麻烦各位,不过关于vs2005内嵌汇编的还真搜不到什么东西...

google用的不好,汗..
ttlyfast 2008-03-10
  • 打赏
  • 举报
回复
米用过vs2005内嵌 你搜一下应该有的8
qmm161 2008-03-10
  • 打赏
  • 举报
回复
格式上也是这样来的,不过

error C4235: nonstandard extension used : '__asm' keyword not supported on this architecture

用_asm试了一下,也是一样!

不过仍然谢谢楼上两位
prgmBaggio 2008-03-10
  • 打赏
  • 举报
回复
arm平台你用vs05编译??
qmm161 2008-03-10
  • 打赏
  • 举报
回复
楼上的代码果然可以编译通过,没有问题!

难道是vs05工程生成lib和生成exe时不一样?
xiao_ke 2008-03-10
  • 打赏
  • 举报
回复
VS 2005 可以用__ASM{..} 嵌套汇编

下面是一个计算INTER CPU时钟的函数,可以用来看看个人的算法高效性的哦~!~
可见不仅支持汇编,里头还支持汇编的一些伪操作
unsigned __int64 timetested()
{
__asm
{
_emit 0x0f
_emit 0x31
}
}

void main()
{
__int64 tm0, tm1;
tm0 = timetested();
.....
tm1 = timetested();
printf("%ld", tm1 - tm0);//可以计算中间过程用去的CPU时钟个数
}

不过asm前面是两个下画线,我用的是VS2005 专业版
qmm161 2008-03-10
  • 打赏
  • 举报
回复
to 8楼,vs05里面C的代码不是本身就是非托管的么?

to 9楼,vs2005不能做交叉编译?
yclz 2008-03-10
  • 打赏
  • 举报
回复
arm平台,想用汇编优化c
去找个嵌入式的论坛看看吧,需要交叉编译器才成.
单车大叔LKLM 2008-03-10
  • 打赏
  • 举报
回复
vs2005可以配置编译为托管代码或者非托管代码
使用内嵌汇编应该把编译环境设置为非托管的
你搜索一下这个相关的
我在公司,没有办法上其他网站
qmm161 2008-03-10
  • 打赏
  • 举报
回复
我顶~
HelloDan 2008-03-08
  • 打赏
  • 举报
回复

#include<stdio.h>

int main()
{
int ia=90;
int ib=23;
_asm //1横
{
push eax
mov eax,ia
add eax,ib
mov ia,eax
pop eax
}
printf("%d\n",ia);
return 0;
}
//只适于VC,其他的编译器不一定行。
//我不了解ARM的,不知你是不是讲这样?直接这样写代码就行了。如上楼所说的。
星羽 2008-03-08
  • 打赏
  • 举报
回复




int main()
{
__asm {

// your asm code

}

return 0;
}


qmm161 2008-03-07
  • 打赏
  • 举报
回复
咋没人来哩?

69,322

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧