2014-11-22 93 views
1

TASM時,多餘的字符所以我有這個子程序:調用子程序

proc print_msg msgptr:word 
    mov dx, [msgptr] 
    mov ah, 9h 
    int 21h 
    ret 
endp 

我嘗試使用

call print_msg, offset msg_description 

,但在這條線上,TASM說:「上線額外的字符」來稱呼它。如何解決這個問題?謝謝。

回答

1

call只需要一個操作數,子程序的地址。如果您像您一樣聲明proc,則需要根據任何約定tasm手動傳遞參數。假設它使用通常的基於堆棧的約定,則需要類似如下內容:

push offset msg_description 
call print_msg 
add sp, 2 ; remove argument if called proc doesn't end with `ret 2`