ciao a tutti, ho un piccolo problema: perchè il codice
codice:
PUSH DL
POP DL
genera errore di stack overflow?


il codice completo del programma mi genera invece un altro errore (sempre dopo che ho messo push e pop) :

"Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention."

questo è il codice
codice:
 #include <stdio.h>
#include <stdlib.h>
void main()
{
     //input
    unsigned char vet[]={0xAA,0xFC,0x09};
    unsigned short int len=19;

    //output
    unsigned int transizioni; //numero di transizioni

    __asm
    {     XOR ECX,ECX 
          XOR EBX,EBX
          XOR EDX,EDX
          XOR EAX,EAX

ciclo:    MOV CH,vet[ECX]        
ciclo2:  CMP BH,0
           JNE pippo
settabl: SAR CH,1 //shifta a destra settando il carry
           JNC dopo2
           MOV BL,1
dopo2:  JMP fine1



pippo:  SAR CH,1 //shifta a destra settando il carry
          JNC fine1
          MOV DL,1
    
          
fine1:   PUSH DL
          SUB DL,BL
          CMP DL,1
          JNE fine2
          INC EAX //EAX è il contatore

fine2:   POP DL
          MOV BL,DL
          MOV transizioni,EAX
          INC BH
          XOR DL,DL
          CMP BH,8
          JNE ciclo2
grazie