#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
void push( char*s)
{
unsigned int i, *v, *w;
char ptr[1024]={0};
strncpy( ptr, &(s[1]), 1024);
i = 0;
while ( ptr[i] ) i++;

puts("push %edx");
v = (int*) ptr;
w = (int*) & (ptr[i-4]);
while ( w >= v){ 
   printf("\npush $0x%x", *w);
   w--;
   }
}
int main(int argc, char*argv[])
{
int i;
puts("main:");
puts("xor %edx,  %edx");
for( i = 1; i < argc;i++)
  switch( *argv[i]) {
	case '-' : push(argv[i]);
                   break;
	case '+' : putchar('\n');
                   argv[i]++;
       default   : printf(" %s", argv[i]);
  }
printf("\n");
return 0;
}
