evc中嵌彙編實驗心得

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().然後就可以作爲函數直接引用了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章