milkyway的窝

最初想法的诞生地

 

evc中嵌汇编实验心得


1.基于X86的CPU可以直接在C/C++中用_asm关键字嵌入汇编程序.有一点要注意:某些系统标识符不可使用.
例如在下面程序中:
__asm{  
  MOV   DX   ,218        
  MOV   CX   ,16    
  MOV   BL,   0      
   MOV   AL   ,BL     
 OUT   DX,     AL  
   INC   DX      
  OUT   DX,   AL     
}
OUT 关键字在WINDEF.H中的74行有以下的定义:  
  #ifndef   OUT  
  #define   OUT  
  #endif  
  -------------------------  
  所以里面的OUT就不能是大写,但可以是Out,ouT,OUt,oUt.等,随你喜欢啦!随便挑一个就可以了.

2.基于ARM的CPU使用EVC不支持直接嵌入汇编,必须按照以下步骤:

(1). 首先用记事本建立汇编程序,保存为.s文件.要在s文件里面export 用到的函数

(2). 编译汇编档案
a. 进入DOS环境, 将当前目录改为wince的bin目录, 如下
cd C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\wcexxx\bin
b. 使用里头的armasm.exe编译汇编档案.(这个armasm的用法可以用 -help 查使用格式)
armasm -cpu XSCALE(此处为你的CPU) -o F:\Test\Asm_Test\test_s.obj(目标obj文件) F:\Test\Asm_Test\test_s.s

(3). 将生成的test_s.obj 加入到你自己工程的 "object/library modules" ( on the page ProjectSetting->Link)

(4).c , .cpp文件里需要声明一下,使用 extern func().然后就可以作为函数直接引用了.

posted on 2007-04-11 22:11 milkyway 阅读(2739) 评论(0)  编辑 收藏 引用 所属分类: evc


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜