標籤:win 定義 *** world 5.0 自訂 code 字串 標準
;以下是16位彙編 建立靜態庫,並調用靜態庫中的函數
;多檔案彙編格式
;編譯方法(此處用的是masm 5.0,如果是其他的編譯器,有可能不能編譯)
;第一種,編譯方法
;1、masm main.asm 產生.obj檔案
;2、masm lib.asm 產生.obj檔案
;3、link main.obj lib.obj 產生.exe檔案
;第二種,編譯方法
;1、masm main.asm 產生.obj檔案
;2、masm 16lib.asm 產生.obj檔案
;3、lib 16lib.lib 16lib.obj 由.obj檔案產生.lib檔案,即靜態庫檔案,可以做為函數庫使用
;4、link main.obj 16lib.lib 由.obj .lib兩個檔案產生.exe檔案
;=======================================
;(main.asm)
.model small
.stack 100h
.386
.data
Msg db "in my world! you know?",0
.code
extrn int21h_40h:far ;引用外部函數,注意:masm5.0用的是extrn ,少一個e字元
main PROC
mov ax,@data
mov ds,ax
push di
mov di,offset Msg
call int21h_40h
pop di
mov ax,4c00h
int 21h main
ENDP
END main
;==================================
;(16lib.asm)
.model small
.stack .data
.code
public int21h_40h ;定義外部函數
;********MS-DOS 中斷 int 21h功能調用***********************
;--------int 21h 功能號 40h案例-------------
;說明:在標準輸出上顯示字串
;輸入參數:di = 字串地址
;輸出參數:無
int21h_40h proc far
xor cx,cx
mov dx,di ;在迴圈前儲存參數,由於後面迴圈會改變di
;此處也是功能 40h 的參數
L1:
;計算字串長度
cmp byte ptr[di],0
je L2
inc cx
inc di
jmp L1
L2:
;顯示字串到標準輸出裝置上
mov ah,40h
mov bx,1
int 21h
ret
int21h_40h endp
end
16位彙編 多檔案 intel彙編 編譯器masm5.0 調用子程式庫即靜態庫的自訂函數 WINDOWS