int main(){ int n = asm_func(); printf("n = %d\n", n); // printf("cs = %d\n", get_esp()); // printf("cs = %d\n", get_ebp()); // printf("cs = %d\n", get_cs()); // printf("ds = %d\n", get_ds()); // printf("ss = %d\n", get_ss()); return 0; }
int main (int argc, char *argv[]) { FILE * pFile; long lSize; char * buffer; size_t result; if(argc<2){ printf("Usage: %s <input file>\n", argv[0]); return 1; } pFile = fopen (argv[1], "rb" ); if (pFile==NULL) {fputs ("File error",stderr); exit (1);} fseek (pFile , 0 , SEEK_END); lSize = ftell (pFile); rewind (pFile); assert(lSize < BUF_SIZE/2); buffer = (char*) malloc (BUF_SIZE); if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} printf("buf=0x%08x\n", (unsigned int)buffer); buffer = (char*)((((unsigned int)buffer+SZ-1)/SZ)*SZ); printf("roundup buf=0x%08x\n", (unsigned int)buffer); result = fread (buffer,1,lSize,pFile); if (result != lSize) {fputs ("Reading error",stderr); exit (3);} asm_func(buffer); // terminate fclose (pFile); free (buffer); return 0; }