0
예제 및 온라인 설명서를보고 Asm을 배우기 시작했습니다. 지금 나는 인터넷에서 벗어난 예를 들고 어려움을 겪고있다.GNU Assember 'SIREG'오류
hat.c
.
include hat.h
.
.
hat_create(hat_desc_t* hat)
{
.
.
copy_page((void*) hat->va_pd, (void*) page);
.
return (page);
}
.
..................................
hat.h
.
NPTE equ 1024
.
inline static void
copy_page(void* src, void* dest)
{
asm volatile
(
"cld\n\t"
"rep\n\t"
"movsl"
:
: "D" (dest), "S" (src), "c" (NPTE)
: "di", "si" <- This where the problem is.....
);
}
의 gcc --version
gcc (GCC) 4.6.1 20110627
gcc -fno-builtin -nostdinc -O2 -fomit-frame-pointer -c hat.c -o hat.o
오류 : 클래스 레지스터 'SIREG'다시로드 'ASM'을하면서 찾을 수 없습니다 오류 : 'asm'피연산자에 불가능한 제약 조건이 있습니다.
누구든지이 오류를 해결하는 방법을 알고 있습니까?