#include <stdio.h>

int main(void) {
	int a;
	int* p;
	int b[3]={127,65537,11113};
	__asm__ volatile (
		"mov %2,%%ecx\n\t"
		"lea %2,%%edx\n\t"
		"mov %%ecx,%0\n\t"
		"mov %%edx,%1\n\t"
	: "=m"(a),"=m"(p)
	: "m"(b[1])
	: "%ecx","%edx");
	printf("%p %d\n",p,a);
	__asm__ volatile (
		"push %%eax\n\t"
		"mov %2,%%ecx\n\t"
		"lea %2,%%edx\n\t"
		"pop %%eax\n\t"
		"mov %%ecx,%0\n\t"
		"mov %%edx,%1\n\t"
	: "=m"(a),"=m"(p)
	: "m"(b[1])
	: "%ecx","%edx");
	printf("%p %d\n",p,a);
	return 0;
}
