我正在尝试在程序集中模拟C字符串复制命令。我将名为A的数组传递给.asm文件,并希望将其作为名为B的数组返回,然后打印出来,如下所示。我不知道该怎么做。我试图用“MOV EDX,[EBP + 4];”从堆栈中取出值,但我不知道如何将此作为变量返回到我的C文件。
MAIN.C
int main()
{
char A[] = "abcdef";
char B[100];
strcopyx(B,A,sizeof(B));
printf("%s\n",B);
return sieve();
}
cstringlib.asm
.586
.MODEL FLAT
.STACK 4096
n=550
.data
PUBLIC _strcopyx
charArray DWORD 4 DUP(?)
.code
_strcopyx PROC
PUSH EBP
MOV EBP,ESP
MOV EDX,[EBP+4];get A ??
mov eax, 0
POP EBP
ret
_strcopyx ENDP
END