ciao a tutti, ho un piccolo problema: perchè il codice
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