microsoft-specific modefiers是微軟的特殊修飾聲明符,包含__asm、__based、__cdecl、__declspec、__fastcall、__stdcall。
基本信息,目錄,聲明符,舉例,使用方法,
基本信息
這樣寫法的聲明符,只能在微軟開發的開發環境下編譯。
目錄
微軟特殊聲明符簡介
特殊聲明符舉例簡介
其他開發環境的類似特殊聲明符使用方法
聲明符
Keyword | Meaning | Used to Form Derived Types? |
__asm | Insert the following assembly-language code. | No |
__based | The name that follows declares a 32-bit offset to the 32-bit base contained in the declaration. | Yes |
__cdecl | The name that follows uses the C naming and calling conventions. | Yes |
__declspec | The name that follows (thread, naked, dllimport, or dllexport) specifies a Microsoft-specific storage-class attribute. | No |
__fastcall | The name that follows declares a function that uses registers, when available, instead of the stack for argument passing. | Yes |
__stdcall | The name that follows specifies a function that observes the standard calling convention. | Yes |
The following sections discuss the syntactic usage and semantic meaning of the Microsoft-specific modifiers.
舉例
1.__asm
作用:在 Visual Studio IDE 代碼文檔中插入一段彙編代碼的標識關鍵字,聲明符與硬體無關。
格式:
(1)__asm mov eax, ptr_data 插入一行彙編代碼
(2)__asm{...} {...}中的...表示多行彙編代碼
2.
使用方法
在單片機開發中,為了提高效率而採用 C 與 Assemble 混編的方式以此提高效率,例如(延時程式):
#pragma ASM
delay: MOV R7, #25H
d1: MOV R6, #50H
d2: MOV R5, #200H
DJNZ R5, $ ; $是當前IP指針指向的地址
DJNZ R6, d2
DJNZ R7, d1
RET
#pragma ENDASM
注意,使用上述代碼必須設定單片機工程->屬性( Project->Properties ),勾選 Generate Assembler SRC File 和Assemble SRC File 。