2011-11-30 72 views
1

我想在程序集中调用一个简单的程序,但我无法让它正常工作。Assembly INVOKE A procedure

我有在数据段定义为

mySearch PROTO, 
map: PTR BYTE, 
char: BYTE 

然后我有END主(在main.asm中)

mySearch PROC, string: PTR BYTE, char: BYTE 
    ret 
    mySearch ENDP 

我调用过程右之前的程序的原型如:

mov ebx, LENGTHOF msg1 
INVOKE mySearch , ADDR myString, ebx 

如果我输了,第二个参数

字符:BYTE

我的程序编译。所以,我的问题是,我不明白如何将一个角色传递给我的程序。

+0

它已经有一段时间,因为我做组装,但我似乎记得,你将其推入堆栈。 – Frank

回答

0

在PROTO或PROC之后不应该有','。 因此,它应该是这样的:

mySearch PROTO map: PTR BYTE, char: BYTE 



mySearch PROC string: PTR BYTE, char: BYTE 
ret 
mySearch ENDP