关于RET后“无可用源”报错,如何解决?(嵌入汇编)

请问一下!嵌入汇编编程调试的时候,调用RET后出现“无可用源”报错是为啥呢

以下是我的代码:

#include<stdlib.h>
#include<stdio.h>

int main()
{
    int a;
    char s[100]={'\0'};
    scanf("%d",&a);
    _asm
    {
        MOV EDX,a    //把a存入edx
        MOV EBX,0
        PUSH EBX
        LEA ESI,s    //获取输出字符串的首地址
        MOV EBX,10
        CALL SEPA
    }
    printf("%s",s);
    system("pause");
    return 0;

    _asm
    {
    SEPA:
        CMP EDX,9    //看是不是只剩下最后一位
        JL  LAB2
        MOV EAX,EDX
        DIV BL
        SAR EAX,8    //取余
        ADD EAX,30H
        PUSH EAX
        MOV EAX,EDX
        DIV BL
        SAL EAX,24
        SAR EAX,24
        MOV EDX,EAX  //留商
        XOR EAX,EAX
        LOOP short SEPA
        ;
    LAB2:
        ADD EDX,30H
        PUSH EDX
        XOR ECX,ECX
        JMP LAB3
    LAB3:
        POP EDX
        CMP EDX,0
        JE OVER
        LEA ESI,s
        MOV byte ptr[ESI+ECX],DL
        INC ECX
        JMP LAB3
    OVER:
        RET
    }
}

或者简而言之,我该如何从调用的子程序返回主函数呢