2011-11-30 3 views
1

어셈블리에서 간단한 프로 시저를 호출하려고하는데 제대로 작동하지 않습니다.Assembly INVOKE A procedure

나는 그럼 난 (main.asm에서) 메인 END

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

내가 프로 시저를 호출하고 직전 절차가

mySearch PROTO, 
map: PTR BYTE, 
char: BYTE 

로 데이터 세그먼트에 정의 된 프로토 타입을해야합니까 로 :

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