Linux에서 인라인 어셈블러에 대한 몇 가지 사항을 이해하려고합니다. 값 대신 VAR 값을 등록 EAX에ASM 인라인 의심
.globl test_func
.type test_func, @function
test_func:
pushl %ebp
movl %esp, %ebp
#APP
# 336 "opers.c" 1
addl 8(%ebp), %eax
# 0 "" 2
#NO_APP
popl %ebp
ret
.size test_func, .-test_func
그것은 요약 var에 MEM 주소 :
void test_func(Word32 *var){
asm(" addl %0, %%eax" : : "m"(var));
return;
}
것은 그것은 어셈블러 코드 다음 생성 : 나는 다음과 같은 기능을 사용하고 있습니다.
var mem 주소 대신 var mem 주소를 레지스터에 복사하지 않고 addl 명령에 var value를 사용하도록 지시 할 수 있습니까?
감사합니다.
당신의 인라인 어셈블리는 EAX에 있어야하는데 무엇을 정의하지 않습니다 시도? – servn