2012-05-05 2 views

답변

5

일부는 input/output operand을 나타냅니다. 어셈블리 코드에서 C 변수를 사용할 수 있습니다. This page에는 좋은 예가 있습니다.

%0은 코드에서 정의 된 첫 번째 입력/출력 피연산자입니다. 실제로 컴파일러에 의해 생성 된 어셈블리 코드에 따라 스택 변수, 힙 변수 또는 레지스터가 될 수 있습니다.

:

int a=10, b; 
asm ("movl %1, %%eax; 
     movl %%eax, %0;" 
    :"=r"(b)  /* output */ 
    :"r"(a)   /* input */ 
    :"%eax"   /* clobbered register */ 
    ); 

%0이 경우 b이고 %1a이다.

+0

"이 경우 % 0은 (는) b이고 % 0은 (는)", 2 % 0 ?? –

+0

작은 실수가있을 것 같습니다. 읽어야합니다 : "'% 1'은'a'"입니다. – Eugene

+0

[Here] (http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html)은 예제가있는 "How To"입니다. – Eugene