4
A
답변
9
일반적으로 당신이
void *x;
asm(".. code that writes to register %0" : "=r"(x) : ...
int r = some_function(x);
asm(".. code that uses the result..." : ... : "r"(r), ...
처럼 뭔가를 할 것입니다, 당신은 모든에서 인라인 어셈블리의 함수 호출을하고 싶지 않습니다. 그렇게하면 호출 규칙이나 스택 프레임 관리의 세부 사항에 대해 걱정할 필요가 없습니다.
베어 본 (bare bones) C에서 먼저 gcc -S를 사용하여 필요에 맞출 수있는 템플릿 코드를 얻으십시오. –
Paul R, 멋진 솔루션이지만 좀 더 일반적인 목적의 솔루션을 원합니다. – MetallicPriest
인라인 어셈블리에서 함수를 호출하면 안됩니다. GCC는 코드를 해석하지 않으므로 함수 호출이 없다는 전제하에 스택 프레임을 설정하지 않는 등의 오류가 발생할 수 있습니다. – ughoavgfhw