PUBLIC 公開,呼叫端用 EXTERN 宣告; C 端
extern void REVSTR(char far *str);
char MESSAGE[] = "MESSAGE";
REVSTR(MESSAGE);
; ASM 端 (REVSTR.asm)
PUBLIC _REVSTR
_REVSTR PROC
PUSH BP
MOV BP, SP
PUSH DS
PUSH SI
PUSH DI
; ... 處理字串反轉 ...
POP DI
POP SI
POP DS
POP BP
RET
_REVSTR ENDP
BP+4 為第一參數BP+6 為第一參數AX (char/short/int/enum) 或 DX:AX (long/pointer),置於 RET 前asm mov ax, dx ; 單行,無分號
asm { ; 多行
push ax
mov ax, bx
}
允許四類指令:一般、字串、跳轉、資料定義。優點:無呼叫開銷、直接存取 C 變數;缺點:非完整組語模組,部分錯誤延至連結/執行期才發現。
混合編程結合高級語言開發效率與組語執行效能,善用現有函式庫縮短開發週期,是系統程式設計的重要技術。