* main.cpp
*
* Created on: 2014. 3. 17.
* Author: info
*/
#include
void func_A(unsigned int ptr[10]){
asm ("movl 0x4%0, %%edi; \n\t"
"movl %%edi, %0; \n\t"
"addl %%edi, 4%0; \n\t"
"addl %%edi, 8%0; \n\t"
"rol %%edi \n\t"
"rol %%edi \n\t"
"rol %%edi \n\t"
"movl %%edi, 12%0; \n\t"
: /* output */
:"m" (ptr[0]),"m" (ptr[1])
:"eax","edi","esi","ebx","memory"
);
}
int main(){
int a=10, b;
int c=123;
unsigned int ptr[10]={0,1,2,3,4,};
ptr[0]=ptr[0]<<1 p="">
func_A(ptr);
//mov 0x14(%esp),%eax
/*asm ("movl 0x14(%0), %%edi; \n\t"
"movl %4,%%eax; \n\t"
"movl 0x14(%%esp),%%edi; \n\t"
"movl 0x14(%%esp),%%esi; \n\t"
"movl 0x14(%%esp),%%ebx; \n\t"
"movl 0x14(%%esp),%%ecx; \n\t"
"addl $4, 0x14(%%esp); \n\t"
"movl %%eax, %0; \n\t"
:"+r" (*ptr)
:"m"(b),"m" (ptr[0]),"m" (ptr[1]),"m" (ptr[2]),"m" (ptr[3]),"m" (ptr[4]),"m" (ptr[5]),"m" (ptr[6]),"m" (ptr[7]),"m" (ptr[8]),"m" (ptr[8]),"m" (ptr[8]),"m" (ptr[8]),"m" (ptr[0]),"m" (ptr[1]),"m" (ptr[2]),"m" (ptr[3]),"m" (ptr[4]),"m" (ptr[5]),"m" (ptr[6]),"m" (ptr[7]),"m" (ptr[8]),"m" (ptr[8]),"m" (ptr[8]),"m" (ptr[8]),"m"(a)
:"eax","edi","esi","ebx","ecx","memory"
);*/
b=ptr[2];
printf("%d, ",b);
printf("%d, %d, %d,%d",ptr[1],ptr[2],ptr[3],ptr[4]);
return 0;
}
댓글 없음:
댓글 쓰기