C++ 에서는 어셈블리 코드를 직접 호출할 수 있다. 이를 인라인 어셈블리라 한다.
#Include <stdio.h>
int foo()
{
int ret = 10;
__asm
{
mov eax, ret; // ret 변수를 eax 레지스터에 넣는다.
} // eax 레지스터는 주로 리턴값으로 사용된다.
// c++에서 선언한 변수를 직접 사용할 수 있다.
}
void main()
{
int n;
foo();
__asm
{
mov n, eax // 위함수에서 eax레지스터에 저장한 값을
} // n변수로 불러온다.
printf( "%d\n", n );
}
#Include <stdio.h>
int foo()
{
int ret = 10;
__asm
{
mov eax, ret; // ret 변수를 eax 레지스터에 넣는다.
} // eax 레지스터는 주로 리턴값으로 사용된다.
// c++에서 선언한 변수를 직접 사용할 수 있다.
}
void main()
{
int n;
foo();
__asm
{
mov n, eax // 위함수에서 eax레지스터에 저장한 값을
} // n변수로 불러온다.
printf( "%d\n", n );
}
'Programming > Assembly' 카테고리의 다른 글
| 인자 전달에 사용된 스택 파괴 (0) | 2010.07.07 |
|---|---|
| Return Address (0) | 2010.07.07 |
| 어셈블리에서 사용되는 레지스터 (0) | 2010.07.07 |
| 어셈블리 기초 명령 (0) | 2010.07.07 |