인라인 어셈블리는 어셈블리로 짜는 소스 코드가 아닌 다른 언어 내에 들어가는 어셈블리 형태의 코드를
말한다. 예를 들어 많이 사용하는 C 내에서 C로는 할 수 없는 일이나 속도가 아주 빠른 작업을 원할 때
직접 어셈블리 코드를 입력해 사용할 수 있다.
시스템 프로그래밍이나 성능을 높여야 하는 경우에 보통은 어셈블리를 사용한다.
즉 프로그램의 대부분을 C나 C++등으로 만들고 고급언어로는 할 수 없거나, 그 부분에 어셈블리를 써서
속도 향상이 가능할 때 그 부분만을 어셈블리로 만들어 C나 C++로 만든 나머지 부분과 같이 쓰게 된다.
C로 된 부분과 어셈블리로 된 부분을 같이 동작시키는 데는 크게 두 가지 방법이 있다.
하나는 어셈블리로 쓴 부분을 독립된 함수로 만들어 따로 어셈블 한 후에 오브젝트 화일을 링크시키는
방법이 있고 나머지 하나는 인라인 어셈블리를 쓰는 방법이 있다.
어셈블리 파일을 따로 만드는 경우엔 어셈블리 함수가 C의 함수 호출 방식을 따르도록 해주면 C와
사용하기 쉬우므로 크기가 큰 경우라면 이 방법을 쓰는 것이 좋다.
그러나 일부분에서만 어셈블리가 필요하거나 특히 고급 언어가 사용하지 못하는 프로세서의 특정한
기능을 쓰기위해 어셈블리를 쓸 때는 많아도 이삼십개 정도의 명령 만을 어셈블리로 만들면
되는 경우가 대부분이고 이를 위해서 따로 함수를 만들어 링크하는 것은 번거로운데다가 자주 호출되는
경우라면 성능에도 영향을 미친다. 이런 경우에 인라인 어셈블리를 쓰게된다.
부록 C. Inline Assembly
인라인 어셈블리는 어셈블리로 짜는 소스 코드가 아닌 다른 언어 내에 들어가는 어셈블리 형태의 코드를 말한다. 예를 들어 많이 사용하는 C 내에서 C로는 할 수 없는 일이나 속도가 아주 빠른 작업을 원할 때 직접 어셈블리 코드를 입력해 사용할 수 있다.
시스템 프로그래밍이나 성능을 높여야 하는 경우에 보통은 어셈블리를 사용한다. 즉 프로그램의 대부분을 C나 C++등으로 만들고 고급언어로는 할 수 없거나, 그 부분에 어셈블리를 써서 속도 향상이 가능할 때 그 부분만을 어셈블리로 만들어 C나 C++로 만든 나머지 부분과 같이 쓰게 된다.
C로 된 부분과 어셈블리로 된 부분을 같이 동작시키는 데는 크게 두 가지 방법이 있다. 하나는 어셈블리로 쓴 부분을 독립된 함수로 만들어 따로 어셈블 한 후에 오브젝트 화일을 링크시키는 방법이 있고 나머지 하나는 인라인 어셈블리를 쓰는 방법이 있다.
어셈블리 파일을 따로 만드는 경우엔 어셈블리 함수가 C의 함수 호출 방식을 따르도록 해주면 C와 사용하기 쉬우므로 크기가 큰 경우라면 이 방법을 쓰는 것이 좋다.
그러나 일부분에서만 어셈블리가 필요하거나 특히 고급 언어가 사용하지 못하는 프로세서의 특정한 기능을 쓰기위해 어셈블리를 쓸 때는 많아도 이삼십개 정도의 명령 만을 어셈블리로 만들면 되는 경우가 대부분이고 이를 위해서 따로 함수를 만들어 링크하는 것은 번거로운데다가 자주 호출되는 경우라면 성능에도 영향을 미친다. 이런 경우에 인라인 어셈블리를 쓰게된다.
Recent Posts
Archive Posts
Tags