1.基于X86的CPU可以直接在C/C++中用_asm關鍵字嵌入?yún)R編程序.有一點要注意:某些系統(tǒng)標識符不可使用.
例如在下面程序中:
__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不支持直接嵌入?yún)R編,必須按照以下步驟:
(1). 首先用記事本建立匯編程序,保存為.s文件.要在s文件里面export 用到的函數(shù)
(2). 編譯匯編檔案
a. 進入DOS環(huán)境, 將當前目錄改為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().然后就可以作為函數(shù)直接引用了.